2

私はマントラに入ろうとしていて、それを反応、還元、フロールーターで使いたいと思っていました。しかし、今回はreduxを正しく取得できません。

Github: https://github.com/saschb2b/kickstart-mantrajs-meteor-react

フロールーターにコンテキストとアクションを注入しました

モジュール/コア/routes.jsx

export default function (injectDeps, { FlowRouter }) {
  const MainLayoutCtx = injectDeps(MainLayout);

 FlowRouter.route('/news', {
    action() {
      mount(MainLayoutCtx, {
        toolbar: <DefaultToolbar title="News" />,
        content: <NewsOverview />,
      });
    },
  });

ただし、アクションをディスパッチするときは、目的の値の代わりに完全なコンテキストが使用されます。modules/core/componentsDefaultToolbar.jsx:42

this.props.store.dispatch(this.props.toggleMenu(this.props.menuOpen));

呼び出す必要があります{type: "MENU_TOGGLE", open: false}

代わりに {type: "MENU_TOGGLE", open: Object}、オブジェクトが Meteor、Tracker、FlowRouter、および Store の完全なコンテキストである場所を呼び出します

私のプロジェクトのクローンを作成し、/news に移動し、ウィンドウのサイズを <1024 (バ​​ーガー ボタンを表示) に変更して、バーガー ボタンをクリックすることで、これを再現できます。コンソールが大量に吐き出すはずです。

redux を間違って使用していますか? ストアが正しく初期化されていませんか? 代替案やヒントがあれば、すべて受け取ります

編集:アクションクリエーターの使用方法に関する私の方法を変更する必要があります。これまでのところ良さそうです。しかし、私の状態で何かが変更された場合、私のコンポーネントは再レンダリングされません。何か案が?最新の変更はリポジトリにあります

4

0 に答える 0