есть часть кода с данным примером?
Вот пример с контекстом...
Сам контекст можно подключать в компоненте App
, а так же любом его дочернем компоненте и менять данные контекста. Все эти изменения будут отображаться в компоненте ToastContainer
.
Со стейт-менеджерами (mobx или zustand) кода наверное будет поменьше... :)
const MyContext = React.createContext({});
//
function Data({children}) {
const [txt, setTxt] = React.useState('Тест')
return <MyContext.Provider value={{text: txt, act: setTxt}}>
{children}
</MyContext.Provider>
}
//
function App() {
const {act} = React.useContext(MyContext)
const [val, setVal] = React.useState('')
return <div>
<input value={val} onChange={e => setVal(e.target.value)} />
<button onClick={_ => act(val)}>Изменить</button>
</div>
}
//
function ToastContainer() {
const {text} = React.useContext(MyContext)
return <div>
{text}
</div>
}
const domContainer = document.querySelector('#like_button_container');
const root = ReactDOM.createRoot(domContainer);
root.render(
<Data>
<App />
<ToastContainer />
</Data>
);
<script src="https://unpkg.com/react@18/umd/react.development.js" crossorigin></script>
<script src="https://unpkg.com/react-dom@18/umd/react-dom.development.js" crossorigin></script>
<div id="like_button_container"></div>