编辑:
我现在觉得很傻。问题是我在代码中的任何地方都不需要我的商店,所以它实际上从未被创建。
当我调用它正在监听的动作时,我的回流商店没有调用它的回调。以下是相关代码:
行动:
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 页面上的示例看起来相当简单,这与在商店中使用该属性的示例几乎完全相同。
任何帮助将不胜感激。