этого передаются из другого компонента по событию?
export default function Messages(props) {
const [messages, setMessages] = useState([]);
return <div>
{
messages.map((msg) => {
<Message value={msg.value}/>
})
}
</div>
}
Данные этой функцией принимаются в родительском компоненте:
function messageSendHandler(value) {
}
Что значит как? Берешь setMessages и меняешь
Так я должен по тригеру другого компонента менять стейт
И что? Передай туда setMessages
Через функцию вверх прокинуть? Так undefined же будет
Тебе надо родителю передать функцию для смены своего стейта? Значит тебе надо это функцию и Стейт сделать в родителе
Мне не нужно стейт передавать родителю, стейт создан и используется в одном компоненте. Но стейт должен получать данные из родительского компонента и добавлять их. (При нажатии на кнопку в родительском компоненте)
передай эти данные пропсами или залей на кодлаб я гляну
А если пропс будет меняться, будет ререндер компонента?
ты же ререндеришь родитель (когда стейт обновляешь), значит все его дети ререндерятся тоже (если ты их не мемоизируешь)
Я нехочу ререндерить родителя
ну ты не можешь это делать, если у тебя стейт там сидит через useState любое обновление state триггерит ререндер
Если бы стейт был сверху, то проблем не было бы
да и на самом деле, реакт достаточно быстрй, если у тебя не 1000 детей, то ничего такого страшного в ререндере нет
Ну сейчас страшного нет, т.к. это просто песочница а вообще надо бы знать...
Обсуждают сегодня