結論あるいは動くコード
const setThemeName = (themeName) => ({ type: 'SET_THEME', themeName: themeName })
↑ が出来上がるまで
Object を返却するメソッドを書くとき、例えば次のようなコードを書きます。
const setThemeName = (themeName) => { return { type: 'SET_THEME', themeName: themeName } }
このコードは動きますが、せっかく Arrow functions を使っているので、return
を省略したいところですね。
なので次のように書き直してみました。
const setThemeName = (themeName) => { type: 'SET_THEME', themeName: themeName }
残念ながらこれはダメです。SyntaxError になります。
(args) => { ... }
という記述をしてしまったので、{ ... }
は Object ではなく、処理が記述された関数本体だと認識するためです。
関数本体ではないことを伝えるためには、括弧を使って ({ ... })
のようにしてあげる必要があります。今回のように return
の記述を省略しながら Object を返却したいなら、次のように書きます。
const setThemeName = (themeName) => ({ type: 'SET_THEME', themeName: themeName })