React native 在React Native中调用Object.assign时,Redux存储状态未更新
我正在React Native上开发一个应用程序 这是我的代码,React native 在React Native中调用Object.assign时,Redux存储状态未更新,react-native,redux,websocket,React Native,Redux,Websocket,我正在React Native上开发一个应用程序 这是我的代码,UPDATE\u我的连接\u ID按预期工作,并在发送时更新状态更新房间但是,根本不更新状态。它可以到达console.log(tmp)行 const initialState = { playerOne: "", playerTwo: "", connectionIdArr: [], myConnectionId: "", }; const reducer = (state = initialState, act
UPDATE\u我的连接\u ID
按预期工作,并在发送时更新状态<代码>更新房间但是,根本不更新状态。它可以到达console.log(tmp)
行
const initialState = {
playerOne: "",
playerTwo: "",
connectionIdArr: [],
myConnectionId: "",
};
const reducer = (state = initialState, action) => {
switch (action.type) {
case "UPDATE_MY_CONNECTION_ID":
return Object.assign({}, state, {
myConnectionId: action.payload.myConnectionId,
});
case "UPDATE_ROOM":
console.log(
"updating room after receiving broadcast from room player",
action.payload
);
Axios.get(
`${process.env.API_ENDPOINT}/get_room/${action.payload.match_id}`
)
.then((res) => {
const tmp = {};
if (res.data.players[0] && res.data.players[0].length > 0)
tmp.playerOne = res.data.players[0];
if (res.data.players[1] && res.data.players[1].length > 0)
tmp.playerTwo = res.data.players[1];
tmp.connectionIdArr = [...res.data.connections];
console.log(tmp);
return Object.assign({}, state, tmp);
})
.catch((err) => console.log("error UPDATE_ROOM: ", err));
default:
etc etc etc...
您永远不应该在reducer中使用异步请求,如果您真的想执行异步请求,redux thunk或redux saga是一个不错的选择。我建议你们两个都看一看,选择一个适合你们需要的
您不应该在reducer中使用异步请求,如果您真的想执行异步请求,redux thunk是一个不错的选择,或者redux传奇。我建议你们两个都看一看,选择一个适合你们需要的