export const addTodo = (text) => {
return {
type: 'ADD_TODO',
id: nextTodoId++,
text
}
}
我想知道我是否可以摆脱额外的{ return ...; }
层,基本上摆脱了阻挡?
为了说明,以下两个箭头功能是相同的:
const fn = (a) => a + 1;
const fn = (a) => { return a+1; };
我可以从第二个更详细的版本中删除return
。
但是当我对Redux示例执行相同操作并剥离返回层时,我收到错误:
SyntaxError:repl,意外令牌,预期; ...
似乎对象文字中的{}
和代码块之间存在一些混淆。有没有办法在这里删除这个额外的返回层?
答案 0 :(得分:1)
你可以通过添加这样的额外括号来防止混淆 -
export const addTodo = (text) => (
{
type: 'ADD_TODO',
id: nextTodoId++,
text
})
希望有所帮助:)
答案 1 :(得分:0)
此外,您可以使用更明确的Object.assign
(可以说)更好的可读性:
const addTodo = text => Object.assign({
type: 'ADD_TODO',
id: nextTodoId++,
text
})