У меня есть родительский компонент, который содержит глобальное значение в своем состоянии. Изменение этого значения должно инициировать изменение состояний дочерних компонентов, как в следующем примере:
function Parent(props) {
const [parentState, setParentState] = useState(someState);
return (
<button onClick={() => setParentState(newState)>Button</button>
<ChildComponent parentState={parentState} />
}
function Child(props) {
const [childState, setChildState] = useState(getState(props.parentState));
}
Нажатие на кнопку в этом примере должно изменить нетривиальное изменение триггера состояния в дочернем компоненте (который использует parentState в качестве параметра для создания своего собственного состояния).
Я думаю, что первым ответом на проблему было бы поднять состояние - однако я бы не хотел этого делать, потому что есть много дочерних объектов, генерируемых через Функция .map - мне нужно сохранить их состояния в массиве и распространить его на все дочерние компоненты. Значение в родительском компоненте является глобальным значением, относящимся ко всем дочерним элементам, и все дочерние элементы должны изменять свои состояния при изменении parentState.
Есть ли какой-нибудь хороший способ добиться этого без отмены состояний дочерних компонентов? Надеюсь, я достаточно хорошо описал проблему - если нет, я буду рад обновить информацию.