从方法访问Redux存储

时间:2020-06-24 20:34:49

标签: reactjs redux react-redux

我目前正在构建一个使用Redux存储的React应用程序。我想测试一种称为{ "$lookup" : { "from" : "table2", "as" : "t2", "let" : { "bid" : "$bid", "t1_id" : "$_id" // should be $_id, as from the SQL you want table1._id, not table1.t1_id }, "pipeline" : [ { "$match" : { "$expr" : { "$and" : [ { "$eq" : [ "$t1_id", "$$t1_id"] }, // $t1_id is from t2, $$t1_id is from variable in let parameter { "$eq" : [ "$bid", "$$bid"] } // $bid is from t2, $$bid is from variable in let parameter ] } } } ] } } 的特定方法,因此我开始重构代码。

我需要在getFacility方法中帮助访问Redux Store。

方法:

getFacilityName

我在import { connect } from 'react-redux'; import { setCMSId } from '../redux/methods.js' export default (props) => { props.dispatch(setCMSId("Hello")); console.log("[" + props.getState().cmsNum + "]"); return "x"; }; 容器内的组件CMSForm内部调用此方法。我的App.js是我创建Redux商店的地方。

似乎我没有正确使用道具。我想通过getFacilityName方法访问并更改Redux存储中的内容。

请让我知道是否需要详细说明-

1 个答案:

答案 0 :(得分:1)

您似乎尚未将此组件连接到redux存储区。您已导入{ connect },只需要使用它即可。通过使用connect HOC包装组件,dispatch方法将被注入到组件中。这样的事情应该起作用:

import { connect } from 'react-redux';
import { setCMSId } from '../redux/methods.js'

export default connect(state => ({ 
   cmsNum: state.cmsNum  // mapping state to component props
}), {
 setCMSId // automatically dispatched when called thanks to `connect`
})(({ cmsNum, setCMSId, ...props }) => {

  setCMSId("Hello");
  console.log("[" + cmsNum + "]");

  return "x";

});