reactjs - 有没有办法动态附加到
在反应JS
问题描述
我想制作一个 todo 应用程序,因为我是 ReactJS 的初学者(是的,我正在自学,而且我还在上高中!)。所以,我想在 ul 后面加上一个 li!
我已经尝试将待办事项记录到控制台,它也可以工作,但现在我想将 li 添加到 ul
表单.js
import React, { Component } from 'react';
import '../Styles/Forms.css';
class Form extends Component {
constructor() {
super();
this.state = { todo: '' };
this.handleTodo = this.handleTodo.bind(this);
this.handleAddTodo = this.handleAddTodo.bind(this);
}
render() {
return (
<div className='center-v-h'>
<form>
<table>
<tbody>
<tr>
<td>
<input type='text' onChange={this.handleTodo} />
</td>
</tr>
<tr>
<td>
<button onClick={this.handleAddTodo} style={{ width: '100%' }}>
Add Todo
</button>
</td>
</tr>
</tbody>
</table>
</form>
<ul id='todo'></ul>
</div>
);
}
handleTodo(e) {
this.setState({ todo: e.target.value });
}
handleAddTodo(e) {
e.preventDefault();
console.log(`Todos: ${this.state.todo}`);
}
}
export default Form;
index.js
import React from 'react';
import ReactDOM from 'react-dom';
import Form from './Components/Form';
function App() {
return (
<div>
<Form />
</div>
);
}
ReactDOM.render(<App />, document.querySelector('#root'));
解决方案
你有这样的状态:
this.state = { todos:
[
{id: 1, text: "Todo 1"},
{id: 2, text: "Todo 2"},
{id: 3, text: "Todo 3"}
]
}
您可以像这样使用map operator
动态渲染ul > li
:
<ul>
{
this.state.todos.map(todo => {
return <li key={todo.id}>{todo.text}</li>
})
}
</ul>
推荐阅读
- django - 默认 Django 密码格式的 Spring 密码编码器 (pbkdf2_sha256)
- python - 如何决定在 django fat 模型实现中放置函数的位置
- c++ - C++ 无法显示或读取整个 txt 文件
- c++ - 递归 - 我无法理解它是如何工作的
- sql - 获取时间格式“分、秒”(例如:12,56(12 分 56 秒)
- python - 我怎样才能加快这个数据帧?
- html - 在闪亮的应用程序中自定义导航栏
- reactjs - 返回时不能调用没有'new'的类构造函数
- sql - 我有 100 美元的数值。当我检查 isumeric 它返回为 1 但我需要将其视为 varchar 值
- initialization - 快速提问:如何初始化选择列表的 LIST-ITEM-PAIRS?