React native 提供程序不支持使用TabViewAnimated动态更改存储
在我的React原生应用程序中尝试通过TabViewAnimated切换到另一个选项卡时,我遇到以下错误 我有两个子组件,提供程序使用如下:React native 提供程序不支持使用TabViewAnimated动态更改存储,react-native,redux,react-redux,redux-thunk,React Native,Redux,React Redux,Redux Thunk,在我的React原生应用程序中尝试通过TabViewAnimated切换到另一个选项卡时,我遇到以下错误 我有两个子组件,提供程序使用如下: render() { const store = createStore(reducers, {}, applyMiddleware(ReduxThunk)); return ( <Provider store={store}> <TabView
render() {
const store = createStore(reducers, {}, applyMiddleware(ReduxThunk));
return (
<Provider store={store}>
<TabViewAnimated
style={styles.container}
navigationState={this.state}
renderScene={this._renderScene}
renderHeader={this._renderHeader}
onRequestChangeTab={this._handleChangeTab}
/>
</Provider>
);
}
"react": "16.0.0-alpha.6",
"react-native": "^0.44.0",
"react-native-tab-view": "0.0.66",
"react-redux": "^5.0.5",
"redux": "^3.6.0",
"redux-thunk": "^2.2.0"
任何建议都将不胜感激 问题是每次调用
render
时,都会创建一个新的store
实例,这会导致此错误
您可以通过在只发生一次的位置(通常在应用程序的入口点或导出应用程序的单独文件中)实例化存储来解决此问题:
// store.js
export default createStore(reducers, {}, applyMiddleware(ReduxThunk));
及
//App.js
从“/store”导入{store}
...
render(){
...
}
...
希望这有帮助 更新:使用我的旧方法创建存储,但是在组件层次结构的父类中,问题不再存在。您的诊断是正确的,问题是每次选项卡更改时,都会再次调用render方法,从而创建一个新存储。谢谢
// App.js
import { store } from './store'
...
render() {
<Provider store={ store }> ... </Provider>
}
...