Роль () скобка после стрелки? - PullRequest
0 голосов
/ 27 апреля 2020

Эта строка работает как содержимое после стрелки в обернутом ()

this.setState((prevState) => ({toggle:prevState.toggle + 1}))

Содержимое после стрелки не обернуто в (), поэтому оно не работает

this.setState((prevState) => {toggle:prevState.toggle + 1})

Ответы [ 2 ]

3 голосов
/ 27 апреля 2020

Функции стрелок могут неявно возвращать значения, просто опуская фигурные скобки, которые традиционно переносят тело функции, если их тело содержит только одно выражение.

const foo = x => x + 1;
foo(1); // -> 2

При использовании неявных возвратов, литералы объекта должны быть заключены в скобки, чтобы фигурные скобки не принимались за открытие тела функции.

const foo = () => { bar: 1 } // foo() returns undefined
const foo = () => ({ bar: 1 }) // foo() returns {bar: 1}
1 голос
/ 27 апреля 2020

Когда вы хотите неявно вернуть объект, фигурные скобки не работают, потому что они обозначают начало и конец блока. Чтобы различать guish между блоком и JS объектом, необходимо обернуть объект в ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...