未来を創る、テックコミュニティー

代表通信~ファシリテーター研修、useReducer

草場代表
2020/08/01

こんばんは。代表の草場です。

本日はSDGsボードゲームファシリ講座を行いました。普段から研修をされている方なので、とてもスムーズに進みました。ファシリテーターをやっている方々、なんというかとても謙虚です。自分よりも経験が全然上のはずですが、敬意が感じられるというか、教える立場に立つとどんどん謙虚になるのでしょうか。ファシリテーターで改めて調べものをしていたら、「ファシリテーションとは~必要な知識・スキルと手法を使いこなすコツ」の記事。「自律的な問題解決を促す」対象として、
「コーチングは、「個人」に対して行います。ファシリテーションは、「チーム」に対して行います。コーチングでは、「自分の考えや行動を深く振り返ることから得られる本人の気づき」により、自律的な問題解決を促しますが、ファシリテーションでは、「メンバー同士の相互作用から得られる気づき」により、自律的な問題解決を促します。ファシリテーションでは、他の人とぶつかり合い、お互いの違いを知ることで、自分たちの壁を打ち破り、成長していくのです。ファシリテーションでは、この相互作用を大切にします。シナジー効果をねらって、自律的な問題解決を促すという点で、お互いに協力し合い、高め合う、チーム力強化に役立ちます。」
シナジーかっけー。改めて振り返ります。

さて、引き続きReactのHooks APIが使いやすく、いろいろと勉強しています。useReducerというものがあります。以下の感じ。
const [state, dispatch] = useReducer(reducer, initialArg, init);

Amazonにあるような、カートにモノを入れるのを実装するときに出てきました。dispatchは銃みたいなもの、という表現がされていました。公式によると、
「useState の代替品です。(state, action) => newState 型のreducerを受け取り、現在の状態をdispatchとメソッドとペアにして返します。(Redux に慣れている人なら、これがどのように動作するかはすでに知っているでしょう)。」
うむ、Redux慣れてないです。例えば上げたり下げたりのカウンターは以下のように書けます。

const initialState = {count : 0;
function reducer(state, action) {
   switch (action.type) {
      case ‘increment’;
           return {count: state.count + 1};
      case ‘decrement’;
           return {count: state.count – 1};
         default:
            throw new Error();
     }
   }
function Counter() {
    const [state, dispatch] = useReducer(reducer, initialState);
    return (
      <>
          Count: {state.count}
          <button onclick={()=> dispatch({type: ‘decrement’})}> – </button>
          <button onclick={()=> dispatch({type: ‘increment’})}> + </button>
     </>
     );
 }

取り急ぎ、Redux勉強しやす。

明日もRedux。

この記事を書いた人
草場代表
エディター