Nip*_*pek 2 reactjs react-native react-navigation react-hooks react-navigation-v5
旧值在焦点事件侦听器内返回
如何在事件侦听器中获取当前状态/值,因为它当前返回旧值
const [organizationName, setOrganizationName] = React.useState('');
React.useEffect(() => {
const unsubscribeNavigationFocus = props.navigation.addListener(
'focus',
async () => {
try {
console.log(organizationName, 'OLD VALUE');
// }
} catch (error) {
console.log('inside error');
console.log(error);
} finally {
}
}
);
return unsubscribeNavigationFocus;
}, [props.navigation]);
Run Code Online (Sandbox Code Playgroud)
@react-navigation/native:“5.8.10”,react”:“16.13.1”,react-native:“0.63.4”,
您需要将您的状态添加到依赖项数组中
const [organizationName, setOrganizationName] = React.useState('');
React.useEffect(() => {
const unsubscribeNavigationFocus = props.navigation.addListener(
'focus',
async () => {
try {
console.log(organizationName, 'OLD VALUE');
// }
} catch (error) {
console.log('inside error');
console.log(error);
} finally {
}
}
);
return unsubscribeNavigationFocus;
}, [props.navigation, organizationName]);
Run Code Online (Sandbox Code Playgroud)
使用 React 的官方 ESLint 插件来捕获此类问题https://www.npmjs.com/package/eslint-plugin-react-hooks
| 归档时间: |
|
| 查看次数: |
3128 次 |
| 最近记录: |