アロー関数です。アロー関数では渡す引数が1つの場合、引数を囲むカッコは省略できることになっていますので、次の各例はいずれも同じ動きをします。
js
1const mapDispatchToProps = function(dispatch) {
2 return {
3 onTodoClick(id) {
4 dispatch(toggleTodo(id));
5 }
6 };
7});
8
9const mapDispatchToProps = (dispatch) => {
10 return {
11 onTodoClick(id) {
12 dispatch(toggleTodo(id));
13 }
14 };
15});
16
17const mapDispatchToProps = dispatch => {
18 return {
19 onTodoClick(id) {
20 dispatch(toggleTodo(id));
21 }
22 };
23});
onTodoClick(id) { ...}
をメンバーとして持つオブジェクトを返しています。
アロー関数では、return文も省略して書くことができます。たとえば、次の2例は同じ動きをします。
js
1
2['Alice', 'Bob', 'Charlie'].filter(val => {
3 return val.indexOf('i') !== -1
4});
5// -> ['Alice', 'Charlie']
6
7['Alice', 'Bob', 'Charlie'].filter(val => val.indexOf('i') !== -1);
8// -> ['Alice', 'Charlie']
9
同様にオブジェクトを返すときにもreturnを省略して書きたいと考えた場合、
mapDispatchToProps = dispatch => {onTodoClick(id) { ... }}
となってしまいますね。
これでは、 dispatch => {}
の波括弧が、 function() {}
の波括弧なのかオブジェクトリテラルの波括弧なのかわかりません。
そこで、 dispatch => ({...})
の形にしてやることで、オブジェクト {...}
を返すということを明確にしています。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/21 23:42