props
とstate
がどのように出て行くのか理解しようとしています。私は理解しているコードをコメントしていますが、何が起こっているのか分からないためにできないものがいくつかあります。このReactコンポーネントのすべての部分をどのように実行しているのですか、状態と小道具の仕組みとは?
それともここであなたにも、コードが表示される場合があります
class TodoList extends React.Component {
// THIS IS THE PARENT COMPONENT
// WE DECLARE THE TYPE OF PROPS
static propTypes = {
todos: React.PropTypes.array
}
// INITIAL STATE OF THE COMPONENT
constructor(props) {
super(props)
this.state = { todos: this.props.todos || [] }
}
addTodo = (item) => {
// WE START MODIFYING THE STATE OF THE COMPONENT
this.setState({todos: this.state.todos.concat([item])});
}
render() {
return (
<div className="panel panel-default TodoList">
<h3>TODO List</h3>
<TodoItems items={this.state.todos}/>
<TodoInput addTodo={this.addTodo}/>
</div>
);
}
};
class TodoItems extends React.Component {
static propTypes = {
items: React.PropTypes.array.isRequired
}
constructor(props) {
super(props);
}
render() {
let createItem;
createItem = (item, index) => {
return (
<li key={index} className="list-group-item">{item}</li>
);
};
return (
<ul className="TodoItems list-group">
{this.props.items.map(createItem)}
</ul>
);
}
};
class TodoInput extends React.Component {
constructor (props) {
super(props);
this.state = {item: ''};
}
onChange = (e) => {
this.setState({item: e.target.value});
}
handleSubmit = (e) => {
e.preventDefault();
this.props.addTodo(this.state.item);
this.setState({item: ''});
}
render() {
return (
<form onSubmit={this.handleSubmit} className="TodoInput">
<div className="input-group">
<input type="text"
className="form-control"
placeholder="Search for..."
onChange={this.onChange} value={this.state.item}/>
<span className="input-group-btn">
<input className="btn btn-default"
type="submit" value="Add" />
</span>
</div>
</form>
);
}
};
React.render(<TodoList todos={['red','blue']}/>, document.getElementById('container'));
どのようにonChange
機能がTodoItems
コンポーネントに何をしているかを説明します。
またはどのようにあなたは、このようなコードの断片を説明します:
<TodoItems items={this.state.todos}/>
<TodoInput addTodo={this.addTodo}/>
なぜthis.state.todos
があると、なぜ名前addTodo={}
がthis.addTodo
とprops
を設定していますか?
初めから始めるのが妥当ですhttps://facebook.github.io/react/ – zerkms
これはおそらくより有用なリソースです。私に多くの助けたhttps://facebook.github.io/react/docs/thinking-in-react.html –