【发布时间】:2021-10-28 18:36:09
【问题描述】:
在 Redux 中,我目前的状态如下所示。
{
activeConversation: "Jim"
conversations: (7) [{…}, {…}, {…}, {…}, {…}, {…}, {…}]
}
我也在使用 socket.io 向其他用户发送消息。
export const newMess = (body) => async (dispatch, getState) => {
try {
const {activeConversation} = getState();
if (!body.conversationId) {
dispatch(addConversation(body.recipientId, data.message));
} else {
dispatch(setNewMessage(data.message, activeConversation));
}
sendMessage(data, body, activeConversation);
} catch (error) {
console.error(error);
}
};
然后我从这里调用我的 reducer 函数。问题在于变量activeConversation。因为我从 thunk 通过 socket.io 传递它,所以这导致两个用户具有相同的 activeConversation 值,这不是我想要的(我希望它们具有不同的值)。问题是我无法访问该状态。我最初从 thunk 获得了状态,但这导致来自用户 1 的 activeConversation 被传递给用户 2,我需要从每个用户那里获取 activeConversation 值。我想知道是否有可能从我的减速器而不是 thunk 中获取 activeConversation 状态值。
【问题讨论】:
标签: javascript reactjs redux redux-thunk redux-reducers