gpt4 book ai didi

javascript - redux 如何获取或存储计算值

转载 作者:行者123 更新时间:2023-11-30 11:54:46 24 4
gpt4 key购买 nike

我应该如何在 redux 中实现基于当前状态的计算值?

我有一个 sessionState 的例子

const defaultState = {
ui: {
loading: false
}, metadata: { },
data: {
id: null
}
}

export default function sessionReducer(state = defaultState, action) {
switch(action.type) {
case STORE_DATA:
return _.merge({}, state, action.data);
case PURGE_DATA:
return defaultState;
default:
return state;
}
}

例如,我想知道 session 是否已登录,我现在通常做的是 sessionState.data.id 来检查它,但我想知道我该怎么做 sessionState.loggedIn 还是什么?

这样可以吗?

const defaultState = {
ui: {
loading: false
}, metadata: { },
data: {
id: null
},
loggedIn: () => {
this.data.id
}
}

或其他东西(未经测试,只是将其放入)。在此示例中,只编写 .data.id 看起来很简单,但也许当涉及到计算时,在不同的文件上编写相同的计算并不好。

最佳答案

向状态对象添加方法不是一个好主意。状态应该是普通对象。请记住,某些库会在每次突变时序列化应用程序状态。

您可以在状态对象之外创建计算函数。他们可以接收状态作为参数。为什么它们应该是国家的方法?

const defaultState = {
ui: {
loading: false
}, metadata: { },
data: {
id: null
}
}


const loggedIn = (state) => {
//your logic here
}

关于javascript - redux 如何获取或存储计算值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38342724/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com