#reactjs #redux #use-effect
#reactjs #redux #использование-эффект
Вопрос:
мой компонент получает три реквизита. urlText — это строка, а setSelectedText — это действие redux для обновления состояния из connect() и clearPage, которое является другим действием redux для очистки состояния.
Я хочу обновить состояние только при изменении urlText. и я хочу очистить состояние при размонтировании.
I get this eslint warning `react-hooks/exhaustive-deps: React Hook useEffect has missing dependencies: setSelectedText`
warning `react-hooks/exhaustive-deps: React Hook useEffect has missing dependencies: clearPage`
const Component = ({ urlText, setSelectedText, clearPage }) => {
useEffect(() => {
setSelectedText(urlText);
}, [urlText]);
useEffect(() => {
return () => {
clearPage();
};
}, []);
};
Ответ №1:
Это никак не повлияет на то, как выполняется ваш скрипт, но линтер предупреждает вас изменить его на:
useEffect(() => {
setSelectedText(
urlText
);
}, [setSelectedText, urlText]);
useEffect(() => {
return () => {
clearPage();
};
}, [clearPage]);
Хотя последнее можно упростить до:
useEffect(() => clearPage, clearPage);