我正在关注 redux 教程 https://redux.js.org/basics/actions并且很难理解下面的代码
export function addTodo(text) {
return { type: ADD_TODO, text }
}
所以上面的函数返回对象 { type: ADD_TODO, text }
并且有两件事让我感到困惑。
与键
text
关联的该对象的值是多少。如果该值未定义,那么为什么不直接返回{ type: ADD_TODO}
呢。如果
text
是一个字符串,那么它不应该是{ type: ADD_TODO, [text]: *some value* }
吗?
此外,还有其他功能,例如
function toggleTodo(index) {
return { type: TOGGLE_TODO, index }
}
function setVisibilityFilter(filter) {
return { type: SET_VISIBILITY_FILTER, filter }
}
有人可以向我解释一下这个语法吗?
最佳答案
他们正在使用ES6 Shorthand property names - 如果预期的键名与变量相同,那么您可以简单地传递变量
let name = 'Jared';
let age = 19;
let literate = false;
let obj = {
name,
age,
literate
}
/* Is the same as...
let obj = {
'name': name,
'age': age,
'literate': literate
}
*/
console.log(obj);
关于Javascript 对象没有值的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59463212/