Esta es mi parte de mi código que obtiene json api del backend y se representa como lista.
Este es mi ejemplo de datos json
(15) [{…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}] 0: {id: 1, title: '1번', content: null, createTime: '2021-10-17T14:07:02', updateTime: '2021-10-17T14:07:02', …} 1: {id: 2, title: '2번', content: null, createTime: '2021-10-17T14:07:02', updateTime: '2021-10-17T14:07:02', …} 2: {id: 3, title: '3번', content: null, createTime: '2021-10-17T14:07:02', updateTime: '2021-10-17T14:07:02', …} 3: {id: 4, title: '1번', content: null, createTime: '2021-10-17T14:07:02', updateTime: '2021-10-17T14:07:02', …} 4: {id: 5, title: '2번', content: null, createTime: '2021-10-17T14:07:02', updateTime: '202Y esta es mi pregunta a continuación.
const [postId, setPostId] = useState(); return ( <Container> {list?.map((post, idx) => ( <Content key={idx} onClick={openModal}> {post.id} {() => setPostId(post.id)} {post.title} </Content> ))} <Modal data={postId} state={modalState} closeModal={closeModal} /> <div ref={observer} /> <div>{isLoading ? <Loading /> : "Data END"} </div> </Container> ); } export default Postsquiero configurar
setPostIdutilizando el valor de
{post.id}en la función de mapa, pero no sé cómo hacerlo? y
{() => setPostId(post.id)}esta funcion no funciona
ayúdame por favor
tu puedes hacer -
{ list?.map((post, idx) => { setPostId(post.id); return ( <Content key={idx} onClick={openModal}> {post.id} {post.title} </Content> ); }); }Pero no estoy seguro de por qué quieres hacerlo de esta manera...
map no puede cambiar el estado de la matriz porque devuelve una nueva matriz con el nuevo estado, si desea cambiar algunos datos en la matriz, debe usar list.forEach en su lugar