私はマントラに入ろうとしていて、それを反応、還元、フロールーターで使いたいと思っていました。しかし、今回は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 を間違って使用していますか? ストアが正しく初期化されていませんか? 代替案やヒントがあれば、すべて受け取ります
編集:アクションクリエーターの使用方法に関する私の方法を変更する必要があります。これまでのところ良さそうです。しかし、私の状態で何かが変更された場合、私のコンポーネントは再レンダリングされません。何か案が?最新の変更はリポジトリにあります