前端基础之《React(13)—表单绑定、列表渲染》

一、表单绑定

1、表单取值的标准写法

表单的值在event.target.value

说明:

(1)event‌:事件对象,包含有关事件的详细信息

(2)target‌:触发该事件的DOM元素

(3)value‌:该DOM元素的value属性值

二、列表渲染

1、由列表数据,变成可以渲染的数组

{id: 1, task: '吃饭'}, {id: 2, task: '读书'}

变成

\\{id}\\{task}\\, \\{id}\\{task}\\

2、用map方法转换

const newList = list.map(callback)

三、例子

javascript 复制代码
import { Component } from 'react';

class A extends Component {
    constructor (props) {
        super(props);
        this.state = {
            todo: '',
            list: [],
        };
    };

    getTodo (ev) {
        //console.log('---change', ev.target.value);
        this.setState({ todo: ev.target.value });
    }

    confirm () {
        // 向列表中添加todo
        console.log('---todo', this.state.todo);
        this.setState(state=>({
            // list是旧的数组展开,和新的对象合并
            list: [...state.list, {id: Date.now(), task: state.todo}],
            todo: '',
        }), ()=>{
            console.log('---new list', this.state.list);
        });
    }

    render () {
        const handler = (ev) => this.getTodo(ev); // 事件处理器
        const { todo, list } = this.state;

        return (
            <div>
                <div>
                    <input type="text" value={ todo } onChange={ handler } />
                    <button onClick={()=>this.confirm()}>添加</button>
                </div>
                <div>
                    列表
                    { list.map(item=>(
                        <div key={item.id}>
                            <span>{item.id}</span>
                            -
                            <span>{item.task}</span>
                        </div>
                    ))}
                </div>
            </div>
        );
    }
}

export default A;
相关推荐
默_笙几秒前
🍔 中间件不只是打日志:四个钩子、一次短路,和自带的工具
前端·javascript
程序员老赵41 分钟前
Docker 部署 Dolibarr:轻松搭建开源 ERP/CRM 平台
运维·前端·后端
星禾元亨1 小时前
同一件事有三份资料,AI 该信哪一份?冲突判定、优先级链与处置流程
前端·人工智能
Dovis(誓平步青云)1 小时前
家里设备越来越多,如何用一张空间地图控制灯光和温度![
android·java·前端·javascript·人工智能·电脑
穆梓兰煊1 小时前
TS5.7 vs 裸JS:AI应用少3坑
前端
榆瓷1 小时前
闲着没事,我把 WebGPU 的样板代码封成了一个库
前端
136096757231 小时前
页面打不开不是 Nginx 的错
前端·后端
liangshanbo12152 小时前
高级前端面试题:package.json 常见字段
前端·json
CappuccinoRose2 小时前
输入事件进阶
前端·javascript·输入事件
记得开心一点嘛4 小时前
Trellora:基于 Electron、React 和本地知识库的 AI 知识工作台
人工智能·react.js·electron