Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 不可变的setIn嵌套对象返回无效的键路径错误_Javascript_Immutable.js - Fatal编程技术网

Javascript 不可变的setIn嵌套对象返回无效的键路径错误

Javascript 不可变的setIn嵌套对象返回无效的键路径错误,javascript,immutable.js,Javascript,Immutable.js,我得到了以下对象: const initialState = Map({ posts: { most_popular: [], trending: [], latest: [], } }); 我试图更新条目中的一个子对象。以下是我尝试过的: intialState.setIn(["posts", "most_popular"], ["array", "of", "values"]); 运行此set命令将返回 Uncaught Error: Invalid ke

我得到了以下对象:

const initialState = Map({
  posts: {
    most_popular: [],
    trending: [],
    latest: [],
  }
});
我试图更新条目中的一个子对象。以下是我尝试过的:

intialState.setIn(["posts", "most_popular"], ["array", "of", "values"]);
运行此set命令将返回

Uncaught Error: Invalid keyPath()
我错过什么了吗?我不需要创建子贴图,是吗?例如

const initialState = Map({
      posts: Map({
        most_popular: [],
显然这不起作用(我已经试过了),但也许还有另一种设置子对象的方法

编辑:

获取对象,并像这样进行更新:

state.get("entries").most_popular = ["k"];
但这意味着我的作品。最受欢迎的(趋势,最新的)不是一成不变的吗?有没有办法使子对象不可变?

使用
fromJS()
而不是使用
Map()
。如果使用
Map()

因此:

现在一切都是不可变的对象。然后您可以轻松地执行以下操作:

initialState.setIn(["posts", "most_popular"], ["array", "of", "values"]);
initialState.setIn(["posts", "most_popular"], ["array", "of", "values"]);