1.8react 留言板 value数据需要用 onchange+setstate

import React from 'react'
import ReactDom from 'react-dom'

class App extends React.Component {
    state = {
        iptname: "",
        ipttxt: "",
        list: [
            { id: 1, name: '泡泡', content: "我好喜欢会跳舞的男生" }
        ]
    }
    add = () => {
        this.setState({
            list: this.state.list.concat({
                id: this.state.list.length + 1,
                name: this.state.iptname,
                content: this.state.ipttxt
            })//concat
        })//set
    }
    remove = (id, index) => {
        let list = [...this.state.list]
        list.splice(index, 1)
        this.setState({
            list
        })//set
    }
    change = (id, index) => {
        let list = [...this.state.list]
        list[index].content = prompt("请输入你要修改的数值");
        this.setState({
            list
        })//set
    }
changeipt=(ev)=>{
    this.setState({
        [ev.target.name]:ev.target.value
    })
}

    render() {
        return (
            <div>
                <h1>留言板</h1>
                <label>用户名</label>
                <input type="text" name="iptname" value={this.state.iptname} onChange={this.changeipt}/>
                <br />
                <label>留言内容</label>
                <input type="text" name="ipttxt" value={this.state.ipttxt} onChange={this.changeipt}/>
                <br />
                <input type="submit" value="提交" onClick={this.add} />

                <ul>
                    {
                        this.state.list.map((item, index) => {
                            return <li key={item.id}>
                                <span>{item.name}</span>
                                <span>{item.content}</span>
                                <input type="button" value="修改" onClick={this.change.bind(null,item.id,index)}/>
                                <input type="button" value="删除" onClick={()=>this.remove(item.id,index)}/>
                            </li>
                        })
                    }
                </ul>
            </div>
        )
    }
}
ReactDom.render(
    <App />, document.getElementById('root')
)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值