旧值在焦点事件侦听器内返回
如何在事件侦听器中获取当前状态/值,因为它当前返回旧值
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”,
reactjs react-native react-navigation react-hooks react-navigation-v5
我一直在尝试将我的 HOC 中的一些道具传递给孩子们。HOC 包装反应路由器开关和路由。子组件中缺少道具。我使用 React.CloneElement 将道具添加到孩子,但似乎不起作用
<BrowserRouter>
<Layout>
<React.Suspense fallback={loading()}>
<Switch>
<Route exact path="/" component={Login} />
<Route path="/dashboard" component={Home} />
<Route path="/tickets" component={Tickets} />
</Switch>
</React.Suspense>
</Layout>
</BrowserRouter>
Run Code Online (Sandbox Code Playgroud)
这是 HOC(布局)
class Layout extends React.Component {
.....
render() {
const children = this.props.children && React.cloneElement(this.props.children, { data: 'ok' })
...
Run Code Online (Sandbox Code Playgroud)
子组件没有得到数据道具,我只得到这个
{history: {…}, location: {…}, match: {…}, staticContext: undefined}
Run Code Online (Sandbox Code Playgroud)