Я использую реагирующий и материальный пользовательский интерфейс. Мне нужно проверить все флажки в списке, установив один флажок в родительском компоненте (т.е. мне нужно выбрать все). Я передаю правильное значение родительского флажка через реквизиты, но это не вызывает визуальных изменений в его дочерних элементах, даже если их значения меняются на «истина». Я уверен, что значения верны, потому что пытался вывести их в консоль.
Вот родитель:
const [checkboxValue, setCheckboxValue] = useState(false)
<Checkbox value = {checkboxValue} onChange = {e => setCheckboxValue(e.target.checked)}/>
{elements.map(element => (<Element selectAll = {checkboxValue}/>))}
А вот ребенок:
function Element(props) {
const [checkboxValue, setCheckboxValue] = useState(false)
useEffect(() => {
setCheckboxValue(props.selectAll)
}, [props.selectAll])
return (
<Checkbox value = {checkboxValue} onChange = {e => setCheckboxValue(e.target.checked)}/>)
}



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


вы используете value вместо checked
function SingleCheckBox({ selectAll }) {
const [checkboxValue, setCheckboxValue] = useState(selectAll);
useEffect(() => {
setCheckboxValue(selectAll);
}, [selectAll]);
return (
<Checkbox
checked = {checkboxValue}
onChange = {(e) => setCheckboxValue(e.target.checked)}
/>
);
}
export default function App() {
const [checkboxValue, setCheckboxValue] = useState(false);
return (
<div className = "App">
<Checkbox
checked = {checkboxValue}
onChange = {(e) => {
setCheckboxValue(e.target.checked);
}}
/>
<div>
<h2>Other checkboxes</h2>
<SingleCheckBox selectAll = {checkboxValue} />
</div>
</div>
);
}
https://codesandbox.io/s/angry-buck-yp7f3z?file=/src/App.js
Да, но там написано, что мне нужно иметь более высокую репутацию, чтобы мой голос учитывался здесь. Но там также говорится, что мой голос повлиял на вашу репутацию. И теперь я также поставил галочку «принять ответ». Я надеюсь, что это также имеет какой-то эффект. Еще раз спасибо за вашу помощь.
Пожалуйста, проголосуйте, если это помогло вам :)