編集:
私は今、ばかげていると感じています。問題は、コードのどこにもストアを必要としていないため、実際には作成されていないことでした。
リッスンしているアクションを呼び出したときに、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 ページの例はかなり単純に見えますが、これはストアでプロパティを使用する例とほぼ同じです。
どんな助けでも大歓迎です。