前端基础之《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;
相关推荐
csj501 小时前
前端基础之《React(12)—条件渲染》
前端·react.js
IT_陈寒1 小时前
Java序列化坑了我三天,原来问题出在这个默认方法
前端·人工智能·后端
雪芽蓝域zzs1 小时前
第四十八节:驾驶舱大屏进阶:数字滚动动画 + 渐变边框美化
前端·javascript·vue.js
ly76891 小时前
Spring Boot 3.2 虚拟线程在 Web 层与 JDBC 池的实践边界
前端·spring boot·后端·tomcat·jdbc·虚拟线程
Bingo_BIG1 小时前
LOV列表的查询
前端·javascript·lov
Setsuna_F_Seiei9 小时前
前端转型 Agent 开发 04 之 MCP 与 Skill(赋予 Agent 更广工作能力)
前端·agent
刘发财10 小时前
前端2秒生成500页矢量PDF,rust真的强到没朋友
前端·javascript·rust
郑州光合科技余经理11 小时前
国际版外卖系统:税率字段怎么和订单主流程解耦
android·java·开发语言·前端·后端·php·ai编程
梦想平凡11 小时前
百游棋牌源代码开发搭建教程(十):隔离部署、备份恢复与双端验收
java·前端·javascript·数据库·源代码管理