Javascript 什么';使用React-setState()时,这些代码片段之间的差异

Javascript 什么';使用React-setState()时,这些代码片段之间的差异,javascript,reactjs,ecmascript-6,Javascript,Reactjs,Ecmascript 6,这两者有什么区别 this.setState((state)=>({ posts: state.posts.filter(post=> post.id !==postRemoved.id) })) 及 setState回调函数期望返回一个对象。在第二种情况下,您只是打开一个函数体,没有返回任何内容 当使用圆括号()包装时,将返回一个对象。这就是第一个选项可以正常工作的原因。主要区别在于第二个选项不起作用。隐式返回使用括号:(a

这两者有什么区别

this.setState((state)=>({
                posts: state.posts.filter(post=> post.id !==postRemoved.id)
            }))


setState
回调函数期望返回一个对象。在第二种情况下,您只是打开一个函数体,没有返回任何内容


当使用圆括号
()
包装时,将返回一个对象。这就是第一个选项可以正常工作的原因。

主要区别在于第二个选项不起作用。隐式返回使用括号:
(args)=>()而显式返回使用括号:
(args)=>{returnnull;}。相同的概念,但
setState
需要一个对象:
(args)=>({…})
(args)=>{return{…};}
。作为参考,而不是
this.setState((state)=>{
                posts: state.posts.filter(post=> post.id !==postRemoved.id)
            })