JavaScript — используйте useEffect для ответа на изменение состояния Redux

используйте useEffect для ответа на изменение состояния Redux

Мне нужно что-то запускать каждый раз, когда меняется реквизит. С классами React я мог бы сделать:

 componentDidUpdate(prevProps) { if (prevProps.x !== this.props.x) { // do something } } 

Я знаю, в useEffect это должно быть useEffect с массивом зависимостей:

 useEffect(() ={amp}gt; { // do something }, [props.x]) 

Но мне нужно сделать что-то за пределами useEffect.

В моем случае мне нужна функция внутри onChange для запуска только при изменении состояния Redux:

 const Editor: React.FC = () ={amp}gt; { const { options } = useSelector((state: RootState) ={amp}gt; state.settings) {amp}lt;CodeMirror onChange={(editor, data, value) ={amp}gt; { // I need to do something only when prev state is different if (prevOptions !== options) { editor.refresh() } /{amp}gt; 

Я не могу понять, как это сделать, кроме того, что возможно установить флаг вне функционального компонента, когда происходит изменение, и вручную установить его обратно.

Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector