Tengo una función llamada onClick de un div que llama a una función de envío y le pasa el valor objetivo (es decir e.target.value ). El valor que se pasa se almacena en una matriz.
Sin embargo, noté que algo extraño estaba pasando. En la matriz a la que se pasa el valor, el primer valor se almacena incorrectamente.
Por ejemplo, si paso 'hello' , en la matriz, se almacena como ['h','e','l','l','o'] . Y esto solo sucede con el primer valor que se pasa, el resto se almacena correctamente.
Esta es mi función, la llamada onClick;
const handleSelectedFilters = (e: any) => { dispatch( actions.storeData({ name: data.name, values: e.target.value, }), ); }Y esta es la acción en mi archivo reductor;
export interface DataState { name: string, values: Array<string>, } export interface FilterState { storedData: DataState[]; } applyData: ( state, action: PayloadAction<DataState>, ) => { state.storedData.push({ name: action.payload.name, values: [...action.payload.values], }); },Por favor, cualquier ayuda será apreciada ya que estoy realmente atascado. ¿Qué necesito hacer diferente?
Estás almacenando tus values como values: [...action.payload.values]
Si lo haces:
var text: String = "hello": console.log([...text]);Verá cómo el operador de propagación colocado dentro de la matriz dividirá su cadena en una matriz.
Solo guárdelo como values: action.payload.values