React实现列表的动态增加与删除

本文介绍如何在React应用中实现列表的动态增加和删除功能,包括点击按钮增加新条目以及删除选定的列表项的代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

React实现列表的动态增加与删除

增加数据需求描述:点击增加按钮给下方列表增加一条数据
在这里插入图片描述
代码实现

import React, { Component } from 'react';

class Jiejie extends Component {
    constructor(props) {
        super(props);
        this.state = {
            inputValue: '', // input中的值
            list: ['lisi', 'xiaohong'] // 初始列表
        }
    }

    inputChange(e) {
        this.setState({
            inputValue: e.target.value
        })
    }

    //增加姓名的按钮响应方法
    addList = () => {
        // es6扩展运算符
        // console.log(...[1, 2, 3]);  //123
        // console.log(...[1, 2, 3],4);  //1234
        // console.log([...[1, 2, 3],4]);  //[1,2,3,4]
        this.setState({
            inputValue: '',
            list: [...this.state.list, this.state.inputValue] //把list数组进行了分解,形成了新的数组,然后再进行组合
        })
    }
    render() {
        return (
            <div>
                <div>
                    <input value={this.state.inputValue} onChange={this.inputChange.bind(this)} />
                    <button onClick={this.addList.bind(this)}> 增加姓名 </button>
                </div>
                <ul>
                    {
                        this.state.list.map((item, index) => {
                            return <li key={index}>{item}</li>
                        })
                    }
                </ul>
            </div>
        );
    }
}

export default Jiejie;

删除数据需求描述:点击列表删除当前一条数据
在这里插入图片描述
代码实现

import React, { Component } from 'react';

class Jiejie extends Component {
    constructor(props) {
        super(props);
        this.state = {
            inputValue: '', // input中的值
            list: ['lisi', 'xiaohong']
        }
    }

    inputChange(e) {
        this.setState({
            inputValue: e.target.value
        })
    }

    //增加姓名的按钮响应方法
    addList = () => {
        // es6扩展运算符
        // console.log(...[1, 2, 3]);  //123
        // console.log(...[1, 2, 3],4);  //1234
        // console.log([...[1, 2, 3],4]);  //[1,2,3,4]
        this.setState({
            inputValue: '',
            list: [...this.state.list, this.state.inputValue] //把list数组进行了分解,形成了新的数组,然后再进行组合
        })
    }

    // 删除姓名,使用下标的方法
    deleteItem = (index) => {
        let list = this.state.list;
        list.splice(index, 1);
        this.setState({
            list: list
        })
    }

    render() {
        return (
            <div>
                <div>
                    <input value={this.state.inputValue} onChange={this.inputChange.bind(this)} />
                    <button onClick={this.addList.bind(this)}> 增加姓名 </button>
                </div>
                <ul>
                    {
                        this.state.list.map((item, index) => {
                            return <li key={index} onClick={this.deleteItem.bind(this, index)}>{item}</li>
                        })
                    }
                </ul>
            </div>
        );
    }
}

export default Jiejie;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值