查看redux todomvc,为什么以下{}
之间没有键?例如在下面的text
和id
之前没有键?有点困惑。
import * as types from '../constants/ActionTypes'
export const addTodo = text => ({ type: types.ADD_TODO, text })
export const deleteTodo = id => ({ type: types.DELETE_TODO, id })
export const editTodo = (id, text) => ({ type: types.EDIT_TODO, id, text })
export const completeTodo = id => ({ type: types.COMPLETE_TODO, id })
export const completeAll = () => ({ type: types.COMPLETE_ALL })
export const clearCompleted = () => ({ type: types.CLEAR_COMPLETED })
欢迎任何意见。谢谢。
更新
感谢您的回答和评论。我发现我的问题有点愚蠢。目前,我正在学习react和redux的乐趣。我对es2015不熟悉。有时,我无法区分2015es新语法和redux语法。谢谢。
最佳答案
在ES2015(和JSX)对象初始化器中,您可以通过仅给出变量名而不在变量后加上值来在对象上创建属性。该属性的名称将与该变量的名称相同,并且该属性的值将是该变量的值:
let one = 1;
let obj = {one};
console.log(obj.one); // 1
因此,在这条线上:
export const addTodo = text => ({ type: types.ADD_TODO, text })
并不是键(属性名称)不存在,而是
text
属性的值(显式)不存在。就像是这样写的:export const addTodo = text => ({ type: types.ADD_TODO, text: text })
// ---------------------------------------------------------^^^^^^
这只是简写。但是令人惊讶的是它有用的频率。
关于javascript:为什么javascript对象中没有键,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40468363/