Я пытаюсь изменить состояние без перезагрузки всего приложения.По какой-то причине этого не происходит, и когда я устанавливаю состояние объекта, который даже не передается определенному компоненту, этот компонент обновляется без причины.
Итак, в приведенном ниже коде ям, когда я устанавливаю сообщение, MainContent
не должен перезагружаться.
const [message, setMessage] = useState({});
setMessage('my message'); // This causes the entire app, including 'MyComponent' to reload
return (
<div className='App'>
<Header user={user} message={message} setMessage={setMessage} />
<div id='main-site'>
<Switch>
// SHOULD NOT RELOAD UNLESS PASSED IN PROP CHANGED
<Route path='/main' component={MainContent} />
</Switch>
</div>
</div>
);
Header.jsx
return (
{message && (
<div>
<span>{message.text}</span>
// This on click makes the entire app reload
<button className='close' onClick={() => setMessage({})}>
X
</button>
</div>
)}
);
Как я могу убедиться, что только компоненты, которыеобновляется message
реквизит, а другие компоненты не обновляются?