我目前正在构建一个使用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存储中的内容。
请让我知道是否需要详细说明-
答案 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";
});