Recibo el error [Se espera que la expresión de conversión de tipos esté entre paréntesis] No sé cómo actualizar la matriz anidada en useState.
let tempArray = [ { filterType: "Company", dataList: [] }, { filterType: "Vehicle", dataList: ["Car", "Bike"] } ] const [resultList, setResultList] = useState(tempArray) const [indexChange, setIndexChange] = useState(0) // Assume here I am using fetch request and getting the response. if (responseJson.success) { setResultList( [ ...resultList, resultList[indexChange].dataList: responseJson.data ] ) }Aquí estoy representando mi matriz de resultados. Al hacer clic en la lista! Según el índice, los cambios se reflejan.
<div className='filterTypeContainer' style={{ backgroundColor: "#F5F6F8", padding: "20px 20px", fontSize: 14, width: "40%" }}> { resultList.map((list, index) => { return <div className='filerType' onClick={()=> setIndexChange(index)}> <p>{list.filterType}</p> </div> }) } </div>El método que está utilizando se llama operador de propagación ...value . En este caso, coloca todos los elementos del estado original en una nueva matriz.
Utilice el operador de propagación para crear una copia de la matriz. Esto evita la mutación al estado original. Luego acceda al índice en la matriz que desea actualizar y devuelva el estado copiado y actualizado.
if (responseJson.success) { setResultList(resultList => { const copy = [...resultList] copy[indexChange].dataList = response.data return copy } } Alternativamente, puede usar el método .map para recorrer el estado y devolver un objeto actualizado basado en el índice.
if (responseJson.success) { setResultList(resultList => resultList.map((item, index) => index === indexChange ? ({ ...item, dataList: responseJson.data }) : item ); }