我正在一个带有几个化简器的React Native和Redux项目中,这些化简器是通过CombineReducers()组合在一起的。
我有一个组件,它不调度任何动作,而仅显示来自redux状态的信息。通过连接功能将其连接到该状态:
class MyComponent extends React.Component {
componentWillMount() {
// some code
}
render() {
return(
<Text>
{ this.props.value }
</Text>
)
}
}
function mapStateToProps(state) {
return {
value: state.updaterReducer.value,
}
}
export default connect(
mapStateToProps,
) (MyComponent);
项目中还有另一个零件/组件,可更改redux的状态和值:
import { makeUpdate } from './updater.actions.js';
import configureStore from '@redux/configureStore.js';
const store = configureStore();
// This function is can be called by some buttons in the app:
export default function update() {
console.log('Update function called');
store.dispatch(makeUpdate());
}
这是我的问题:调用update时,都会同时调用updater-action和updater-reducer,以便redux状态发生变化,但是'MyComponent'从未更新。
答案 0 :(得分:1)
我可以自己解决问题:最终,解决方案非常简单,但无法根据原始问题中的代码找到:每次我需要redux-store时,我都会使用通过网络教程中的configureStore-function可以在reducers的基础上创建它。因此,我多次创建了“相同”商店。不幸的是,这些商店没有相互连接...
有时可以在项目中工作,因为mapStateToProps函数和mapDispatchToProps函数都在同一个组件中,并且使用了一个存储,但是有时(例如在问题示例中)这些功能使用了不同的存储,互不影响。