В React состояние у каждого компонента своё,
да можно пробросить пропсы, или сделать его глобальным,
но если у меня есть context global массив с объектами, и я меняю в одном его объекте ключ-значение text: true на false,
могу ли я привязать это true или false к другому setState'у в компоненте,
Например,
// context global
const [arr, setArr] = useState([
{text: true, img: link, itemId: 23},
{text: false, img: link, itemId: 21},
{text: true, img: link, itemId: 25}
])
const [btext, setBtext] = useState(true);
const handleChangeText = () => {
arr.map((item) => {
if (item.text === true) {
setBtext(false );
}
})
}
return (
<button onClick={handleChangeText}>{btext}</button>
)
Когда кликаю по кнопке в этом компоненте всё меняется,
но если я меняю item.text в массиве arr из другого компонента, то в другом компоненте он стоит такой же,
setBtext меняет вроде значение, но новый текст не рендерится и не меняется его значение.
Это связано с тем, что там стоит event onClick, и нужно что-то вроде onChange? дополнительно ставить?