ReactJSを使用しており、ReactJSの使用方法を理解する上での問題があります。パラメータを使用したコールバック関数ReactJS
私は、TodoFormComponent
と名付けられた親コンポーネントを持っています。それはtodoアイテムのリストを初期化します。 TodoItemsComonent
にコールバック関数を作成しましたが、updateItem
メソッドがトリガーされず、selected
アイテムが表示されます。
質問:子から親にデータを渡すにはどうすればよいですか?選択したtodoアイテムを親に渡して、マスターtodoリストを更新できるようにします。
親コンポーネント(TodoFormComponent)
TodoFormComponent
はupdateItem
メソッドをトリガしなければならないselectedTask
を有しています。
import * as React from "react";
import TodoItemsComponent from "../todo-items/todo-items.component";
import AddTodoItemComponent from "../add-todo-item/add-todo-item.component";
export default class TodoFormComponent extends React.Component {
constructor(){
super();
this.state = {
todoItems: [
{ id: '1', todo: 'First Todo Item' },
{ id: '2', todo: 'Second Todo Item' },
{ id: '3', todo: 'Third Todo Item' }
],
selected: {}
};
this.updateItem = this.updateItem.bind(this);
}
updateItem() {
console.log('Selected Value:: ', this.state.selected);
}
render() {
return (
<div className="row">
<div className="container">
<div className="well col-xs-6 col-xs-offset-3">
<h1>To do: </h1>
<div name="todo-items">
<TodoItemsComponent items={this.state.todoItems} selectedTask={() => {this.updateItem}}/>
</div>
<div name="add-todo-item">
<AddTodoItemComponent/>
</div>
</div>
</div>
</div>
)
}
}
子成分(TodoItemsComponent)
TodoItemsComponent
が選択された値を更新するonClick
を有しています。これは、selectedTask
関数で更新されます。 import * as "react"からの反応;
export default class TodoItemsComponent extends React.Component {
constructor(props) {
super(props);
}
selectedTask (item) {
this.setState({selected: item})
}
render() {
return (
<ul className="list-group">
{
this.props.items.map((item) => {
return (
<li className="list-group-item">
{item.todo}
<div className="pull-right">
<button
type="button"
className="btn btn-xs btn-success">
✓
</button> <button
type="button"
className="btn btn-xs btn-danger"
onClick={() => {this.selectedTask(item)}}
>X
</button>
</div>
</li>
)
})
}
</ul>
)
}
}
そうそう、あなたは男です! :)これはトリックでした...私は私のメソッドをトリガすることを防止していた親のラムダ関数をしようとしていた。ありがとうございました! – ChaseHardin