В этом примере
function App() {
const [value1, dispatch1] = useReducer(reducer, initialState1);
const [value2, dispatch2] = useReducer(reducer, initialState2);
return (
<React.Fragment>
<button
onClick={() => {
dispatch1({ type: "setFirstName", firstName: "nick" });
}}
>
change1
</button>
<button
onClick={() => {
dispatch2({ type: "setFamilyName", familyName: "fname" });
}}
>
change2
</button>
<JediContext1.Provider value={value1}>
<Display1 />
</JediContext1.Provider>
<JediContext2.Provider value={value2}>
<Display2 />
</JediContext2.Provider>
</React.Fragment>
);
}
я использовал два контекста для рекомендации из здесь . Но я мог неправильно понять, и, возможно, проблема с github относится к другому делу? Потому что, похоже, это не решает мою проблему.
Проблема с приведенным выше кодом заключается в том, что если я нажму кнопку change1
, которая изменит value1
, компонент Display2
также переопределяется, что даже не потребляет value1
.
На самом деле это имеет смысл для меня, потому что Я изменил состояние в приложении, следовательно, он переопределяет все его дочерние элементы. Но тогда я не понимаю использование рекомендации из ссылки на github, потому что это не решило мою проблему здесь?
Это может быть проблематично c производительности, если у вас есть большое приложение и root поставщик контекста сказать.