请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

只有todos里的state被immutable.fromJS处理,为什么filter和text也需要用get获取了呢

filter和text的state不是没经过immutable.fromJS处理吗,经过转化的只有todos的state啊?

// reducers/todos.js中
const reducers = (state = immutable.fromJS(initialState), action) => {
......
}
// reducers/text.js 中
const text = (state = '', action) => {
...
}

然后在selectors/index.js中:

export const getText = (state) => state.get("text");

也不会报错,之前课程里我们知道,todos.js和text.js中的reducer的传参state并只是一部分的state,也就是说被immutable.formJS处理过的只有todos数组啊,应该是这样吧。那么为什么获取text和filter的时候我们也需要使用get获取到呢

正在回答

1回答

艾特老干部 2019-12-20 13:55:26

你好,immutable.fromJS是为了将JS对象转换成immutable封装的不可变对象格式,而filter和text是字符串类型,本身已经是immutable类型了,所以不需要额外处理。

0 回复 有任何疑惑可以回复我~
  • 提问者 Funking #1
    老师你好,我疑问就是为什么filter和text什么时候转换成不可变数据的呢?他们不是字符串吗?也没有fromJS转化,是什么时候被处理成不可变数据了呢?如果是字符串本身是不具备使用get方法获取的吧
    回复 有任何疑惑可以回复我~ 2019-12-20 14:14:36
  • 艾特老干部 回复 提问者 Funking #2
    reducers/index.js中,
    import { combineReducers } from 'redux-immutable'
    这里的combineReducers会处理
    回复 有任何疑惑可以回复我~ 2019-12-20 14:34:44
  • 袁门弟子 回复 提问者 Funking #3
    字符串不具备get方法,但是它所在对象经过转换具有了get方法
    回复 有任何疑惑可以回复我~ 2020-05-26 16:37:33
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信