Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

105
Visualizações
La tienda Redux está actualizada pero la vista no

Tengo el componente principal Posts.js que asigna cada objeto en la matriz de publicaciones. En esta función, trato de filtrar todas las notas que tienen el mismo post_id que el id del objeto de publicación asignado actual. Todo almacenado en la variable filteredNotes. Luego se lo paso a cada niño. Ahora el problema. Cuando quiero agregar una nueva nota en una publicación específica, la vista no se actualiza (la nueva nota no se agregó a la lista) aunque la base de datos y la tienda redux se actualizaron correctamente. Pero cuando trato de eliminar esa función de filtro, todo funciona bien, así que supongo que el problema principal está ahí. ¿Algúna idea de cómo arreglar esto? Gracias

Publicaciones.js

 const posts = useSelector((state) => state.post.posts); const notes = useSelector((state) => state.notes.notes); useEffect(() => { dispatch(getPosts()); dispatch(getNotes()); }, []); const addNoteHandle = (val) => { dispatch(addNote({new_note: val})); } return ( <div className="post__page"> <div className="post__list"> {posts.map((data) => { let filteredNotes = notes.filter((i) => i.post_id === data.id); return <Post data={data} notes={filteredNotes} />; })} </div> <PostForm addNewNote={addNoteHandle} /> </div> );

Post.js

 export const Post = ({ data, notes }) => { return ( <div className="post__item"> <div className="post__title">{data.title}</div> <div className="post__note"> {notes.map(note => <div>{note.text}</div>)} </div> </div> ); };

NoteForm.js

 const NoteForm = ({ addNewNote }) => { const [text, setText] = useState(""); return ( <div> <Input value={text} onChange={(e) => setText(e.target.value)} /> <Button type="primary" onClick={() => addNewNote(text)} > <SendOutlined /> </Button> </div> ); };

Acción

 export const addNote = ({ new_note }) => async (dispatch) => { try { const res = await axios.post("http://localhost:9000/api/note", new_note); dispatch({ type: ADD_NOTE, payload: res.data }); } catch (err) { dispatch({ type: NOTE_FAIL }); } };

reductor

 case ADD_NOTE: return { ...state, notes: [...state.notes, payload] };
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

use useSelector para obtener el valor del componente de la tienda redux. por alguna razón, el gancho setText no funcionará para actualizar el componente de la página. Tuve un problema similar y no pude encontrar ninguna solución. Este código puede ayudar:

 let text =''; text = useSelector((state) => state.yourReducer.text);

Ahora muestra tu texto donde quieras, esto solucionará el problema hasta que encuentres una solución real.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda