在我的app.js文件中,我试图基于redux中的身份验证加载不同的堆栈导航器。但是,当我使用身份验证更新状态时,该应用程序不会呈现其他导航器。我正在登录组件中运行检查以验证身份验证是否正确更新。
// app.js
import { Tabs } from './_router';
import { Nav } from './_router';
// get redux
import { createStore, applyMiddleware } from 'redux';
import { Provider, connect } from 'react-redux';
import reduxThunk from 'redux-thunk';
import rootReducer from './_reducers';
const createStoreWithMiddleware = applyMiddleware(reduxThunk)(createStore);
const store = createStoreWithMiddleware(rootReducer);
class App extends Component {
render() {
const state = store.getState();
return (
<Provider store={store}>
{
state.login.authenticated
?
<Nav />
:
<Tabs />
}
</Provider>
);
}
}
export default App;
我在登录组件中进行了此检查,登录后它会从“未认证”切换为“已认证”。但是App.js不会呈现其他堆栈导航器。
// login.js
{
authenticated
?
<Text>Authenticated</Text>
:
<Text>not authenticated</Text>
}
当App.js文件更改并加载其他堆栈时,该文件是否应注册身份验证?
**解决方案:我基本上只是将另一个组件砍在一起,我在其中调用身份验证并运行相同的三元组,并且运行良好...解决了我的问题,但没有按照我尝试的方式解决。< / p>