3

編集:

私は今、ばかげていると感じています。問題は、コードのどこにもストアを必要としていないため、実際には作成されていないことでした。

リッスンしているアクションを呼び出したときに、refluxjs ストアがコールバックを呼び出していません。関連するコードは次のとおりです。

行動:

module.exports = require("reflux").createActions([
    "createUser"
]);

店:

var userActions = require("../actions/user-actions");

module.exports = require("reflux").createStore({
    listenables: userActions,

    onCreateUser: function() {
        console.log("onCreateUser called", arguments);
    }
});

アクションを起動するコンポーネント:

var React = require("react"),
    userActions = require("../../actions/user-actions");

var Login = React.createClass({
    getInitialState: function() {
        return {
            name: ""
        };
    },

    updateName: function(event) {
        this.setState({
            name: event.target.value
        });
    },

    // Action gets called here
    submit: function(event) {
        event.preventDefault();
        console.log("Creating user", this.state.name);
        userActions.createUser(this.state.name);
    },

    render: function() {
        var name = this.state.name;

        return (
            <div className='login'>
                <form onSubmit={this.submit}>
                    <input value={name} onChange={this.updateName} />
                    <button>Create</button>
                </form>
            </div>
        );
    }
});

Loginコンポーネントでフォームを送信すると、submitメソッドはエラーをスローせずにonCreateUser呼び出されますが、ストアのメソッドは呼び出されません。

listenables逆流 github ページの例はかなり単純に見えますが、これはストアでプロパティを使用する例とほぼ同じです。

どんな助けでも大歓迎です。

4

1 に答える 1