//组件监听store第三种写法 Reflux.listenTo(store,监听方法) //在mixins内用reflux.listenTo实现了store的监听 var TodoComponent=React.createClass({ mixins:[Reflux.listenTo(TodoStore,'onStatusChange')], getInitialState:function(){ return {list:[],text:''} }, onStatusChange:function(list){ this.setState({list:list}) }, componentDidMount:function(){ TodoActions.getAll({pid1:123,pid2:141}); }, onChangeText:function(ev){ //this.setState({text:ev.target.value}); //最新的refs获取标签不需要getDOMNode()了 this.setState({text:this.refs.reftext.value}) }, onAddItem:function(){ var data={userName:this.state.text}; TodoActions.addItem(data); this.setState({text:''}) }, render:function(){ return ( <div> {this.state.list.map(function (item,index) { return <p key={index}>{item.userName}</p> })} <input type="text" value={this.state.text} onChange={this.onChangeText} ref="reftext" /> <button onClick={this.onAddItem}>添加</button> </div> ); } })
mixins:[Reflux.listenTo(TodoStore,'onStatusChange')]
这样不用写listenTo监听方法了。
直接在第一次渲染后调用动作来获取数据就可