美文网首页
React添加评论和删除评论组件

React添加评论和删除评论组件

作者: ticktackkk | 来源:发表于2020-08-05 11:25 被阅读0次
提前准备:设置一个空的数组,一个空的value值。数组用于渲染li标签列表,value值是输入框初始值。
思路:获取输入框的值,先按钮点击判断一下输入框的值是否为空,不是为空的时候拿到输入框的值,cancat进去我们的空数组中,最后点击之后不要忘记吧输入框设置为空。删除评论组件是在子组件通过map的index下表,所以我们点击谁,就可以通过splice(index,1)删除我们被点击的元素

父组件:主要是按钮和输入框

class Parent extends React.Component {
    constructor(props) {
        super(props);
        this.state = {
            item: [],
            text: ''
        }
        this.getValue = this.getValue.bind(this)
        this.submit = this.submit.bind(this)
    }
    getValue(e) {
        this.setState({
            text: e.target.value
        })
    }
    submit(){
        if (this.state.text.length === 0) return
        const newItem = {
            text: this.state.text,
            id: new Date().getTime()
        }
        this.setState({
            item: this.state.item.concat(newItem),
            text: ''    
        })
    }
//submit() { 方法二
       // if (this.state.text.length === 0) return
       // let arr = this.state.item
       // arr.unshift(this.state.text)
       // this.setState({
            //item: arr,
           // text: ''    
       // })
   // }
    render() {
        return (
            <div>
                <button onClick={this.submit}>add#{this.state.item.length}</button>
                <input onChange={this.getValue} value={this.state.text} placeholder="请输入"></input>
                <App item={this.state.item} ></App>
            </div>
        );
    }
}

子组件:评论展示和点击删除 在点击删除事件里,切记不要忘记用setState渲染页面,不然点击删除看不到效果

class App extends React.Component {
    constructor(props) {
        super(props);
        this.deleteList = this.deleteList.bind(this)
    }

    deleteList(e) {
        this.props.item.splice(e,1)
        this.setState({
        })
    }
    render() {
        return (
            <ul>
                {this.props.item.map((item, index) => {
                    return <li key={item.id} onClick={this.deleteList.bind(this, index)}>{item.text}</li>
                  // return <li key={index} onClick={this.deleteList.bind(this, index)}>{item}</li>//对应方法二

                })}
            </ul>
        );
    }
}

相关文章

网友评论

      本文标题:React添加评论和删除评论组件

      本文链接:https://www.haomeiwen.com/subject/vbunrktx.html