javascript - 如何将 state 中定义的数组中的值传递给看到组件的组件?
问题描述
所以我是 React 的新手,正在尝试编写一个 Todo 列表。
正如您将在以下片段中看到的那样,我array
在App.js
. 我调用 中的TodoList
组件App.js
并将其交给array
. 在TodoList
我想为列表中的大量元素生成一个具有动态值标题的单个 Todo。我确实在页面上获得了标题,但通过Todolist
. 我怎样才能将这个值交给单个 Todo,这是否有意义?
应用程序.js
class App extends Component {
state = {
todos: [
{
id: uuid.v4(),
title: 'Title',
isCompleted: false
},
{
id: uuid.v4(),
title: 'Title 2',
isCompleted: false
},
{
id: uuid.v4(),
title: 'Title 3',
isCompleted: false
}
]
}
render() {
return (
<div className="App">
<LayoutEntry />
<AddTodo />
<TodoList todos={this.state.todos} />
</div>
);
}
}
export default App;
TodoList.js
class TodoList extends Component {
render() {
return this.props.todos.map((todo) => (
<div>
<h3>{ todo.title += " Test" }</h3>
<Todo />
</div>
));
}
}
export default TodoList;
Todo.js
class Todo extends Component {
render() {
return (
<div>
<input id="buttonDelete" type="button" value="Delete"></input>
</div>
)
}
}
export default Todo;
解决方案
只需将其作为道具传递到您的地图中:
<Todo item={todo} key={todo.id} />
然后在您的 Todo 组件中,您可以获取数据:
<div>
<div>Title: {this.props.item.title}</div>
</div>
编辑:添加了 Richard Fazzi 指出的密钥。
推荐阅读
- javascript - AngularJS:ngIf在具有不同属性的数组数组中
- unix - Unix sed 从起始模式读取到文件结尾
- javascript - 无法使用 MyChart 功能
- generics - 闭包如何根据它们需要实现的特征来推断它们的类型?
- c++ - 使用基于范围的循环返回向量中项目的地址
- verilog - 在 topmodule 中制作子模块会导致验证器错误
- python - 如何制作一个包含从 C++ 构建的可执行文件的包?
- excel - 使用vba从Access数据库中提取到excel
- go - 使用 Cassandra GOCQL 驱动程序 (Golang) 确定页面状态
- docker - 在 dockerfile 与 CI 上运行构建和测试?