我正在阅读一篇文章并尝试理解“react + redux + immuntable”js用例: https://www.toptal.com/react/react-redux-and-immutablejs
我有点难以理解本文的以下部分:
以下内容来自文章:
在地图回调中,我们得到了todo,这是一个仍然是不可变形式的对象,我们可以安全地在Todo组件中传递它。 // components / TodoList.js
render()
{
return (
// ….
{todoList.map(todo => {
return (
<Todo key={todo.get('id')}
todo={todo}/>
);
})}
// ….
);
}
QUES:
为什么他说“地图回调”?这是一个回调还是一个被调用的函数?
这里是否创建了地图?我的意思是它类似于让obj1 = Map({prop:'someValue'});
通过这个部分可以获得什么好处?
谢谢!
答案 0 :(得分:3)
todoList
是一个Immutable.js List
。其中map
函数与Array.prototype.map
类似。 .map(callbackFn)
会返回新的List
,这是将callbackFn
应用于原始List
中的每个项目的结果。因此,在这种情况下,结果是List
<Todo>
个组件。 React支持使用iterables(List是可迭代的)作为子项,这就是为什么你可以直接使用map
的结果。
答案 1 :(得分:1)
“地图回调”是作为参数传递给todoList
.map
的函数,而不是像动态对象
未创建地图
在数组上使用map
函数时的想法是将数组转换为其他内容。这是表达“获取此数组,并为每个元素返回一些内容并将数组返回给我”的快捷方式。有关map
函数here。