首先定义limit
的state
变量使用getInitialState
方法,你没有定义的限制,这就是为什么this.state.limit
是null
。
定义方法的所有functions
外部render
。
Arrow function
与renderTodos
不是必需的。
{this.renderTodos()}
这样写:
var TodoList=React.createClass({
getInitialState: function(){
return {
limit: 5
}
},
onLoadMore() {
this.setState({
limit: this.state.limit + 5
});
},
renderTodos: function(){
return todos.slice(0,this.state.limit).map((todo)=>{
return(
<Todo key={todo.todo_id}{...todo} onToggle={this.props.onToggle}/>
);
});
};
render:function(){
var {todos} = this.props;
return(
<div>
{this.renderTodos()}
<a href="#" onClick={this.onLoadMore}>Load</a>
</div>
)
}
});