用Redux响应本机:mapStateToProps()函数未更新

时间:2018-08-01 12:24:48

标签: react-native redux react-redux

我正在一个带有几个化简器的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'从未更新。

1 个答案:

答案 0 :(得分:1)

我可以自己解决问题:最终,解决方案非常简单,但无法根据原始问题中的代码找到:每次我需要redux-store时,我都会使用通过网络教程中的configureStore-function可以在reducers的基础上创建它。因此,我多次创建了“相同”商店。不幸的是,这些商店没有相互连接...

有时可以在项目中工作,因为mapStateToProps函数和mapDispatchToProps函数都在同一个组件中,并且使用了一个存储,但是有时(例如在问题示例中)这些功能使用了不同的存储,互不影响。