Reactjs react native redux分派外部组件不是触发器组件WillReceiveProps

Reactjs react native redux分派外部组件不是触发器组件WillReceiveProps,reactjs,react-native,redux,redux-thunk,Reactjs,React Native,Redux,Redux Thunk,我在react组件myActions.js之外有此调度: 从“/defaultActions”导入{SET_ORDER}; 从“./store”导入存储; const setOrder=value=>({type:SET\u ORDER,value}); 导出常量addToOrder=(项,类型)=>{ 让order=store.getState().order;//从存储中获取对象 order[type].push(JSON.parse(JSON.stringify(item));//克隆新对

我在react组件myActions.js之外有此调度:

从“/defaultActions”导入{SET_ORDER};
从“./store”导入存储;
const setOrder=value=>({type:SET\u ORDER,value});
导出常量addToOrder=(项,类型)=>{
让order=store.getState().order;//从存储中获取对象
order[type].push(JSON.parse(JSON.stringify(item));//克隆新对象以在order数组上推送
dispatch(setOrder(order));//分派新订单对象
};
在我的组件中,我将收到以下道具:

从“react redux”导入{connect};
从“myActions.js”导入{addToOrder};
类扩展组件{
componentDidMount(){
this.someAction();//触发更新顺序
}
someAction(){
addToOrder({something},'type');
}
组件将接收道具(道具){
//不行
//期待道具。命令,但从未出现
}
}
常量stateToProps=({order})=>({order});
const dispatchToProps=null//这里不派送
const conn=连接(stateToProps、dispatchToProps);
出口默认连接(饮料);
商店更新了,但从未调用componentWillReceiveProps,我需要怎么做才能正确接收道具


我的包redux库是:“react-redux”:“^5.0.7”、“redux”:“^3.7.2”、“redux-thunk”:“^2.3.0”我的存储在组件之间工作正常,仅在我尝试将其分派到react组件外部时失败。

您并不是真正克隆对象(仅克隆项目),因此,您正在以可变的方式更新状态,这就是从未调用componentWillReceiveProps()的原因。您的订单变量仍然指向redux存储中的订单。试试这个:

export const addToOrder=(项目,类型)=>{
let order={…store.getState().order};//从存储中获取克隆的order对象
订单[type]。推送(项);//将新对象推送到克隆对象
dispatch(setOrder(order));//分派新订单对象
};

您确定您的操作是真的吗?您附加的代码只创建了action对象,但从未对其调用
dispatch
(例如
this.props.dispatch(addToOrder(..)
而不仅仅是
addToOrder
)dispatch在myActions.js store.dispatch(setOrder(order))中的addOrder函数中//dispatch new order对象,我的存储已更新,如果在调用函数x后打印属性,我可以看到更新的状态。但是方法componentWillReceiveProps没有被调用。