react开发todoList――添加

通过create-react-app来创建项目,
目前只做了最简单的添加和删除操作,涉及知识点:组件之间传值、事件绑定。
项目目录:

1551261485(1).jpg

页面如下:
1551261564(1).jpg

大致分为三个组件:
App.js
topHeader.js
middleContent.js

在头部的输入框中输入内容,点击确定,在待完成事件中显示输入的内容。
即:在头部的组件中输入,在内容组件中显示
在这里就涉及到组件之间的传值问题,即,topHeader.jsmiddleContent.js两个非父子关系的组件

方法一:

因为两组件之间有相同的直接父组件,所以,我们可以通过将数据从一个子组件传递给父组件,然后再由父组件传值给另一个子组件(当然,页面逻辑非常复杂的情况下,这样会很麻烦,但目前只会这一种)。

添加

首先,在头部的子组件中获取到输入框的值,在点击按钮时调用父组件的方法进行传值。
topHeader.js

<button className="submitBtn" onClick={this.handleAdd.bind(this)}>确定</button>
handleAdd() {
    if(this.props.onSubmit){
      this.props.onSubmit(this.state.inputValue)
    }
    this.setState({
      inputValue:''
    })
  }

父组件App.js

<TopHeader onSubmit={this.handleSubmit.bind(this)}/>
handleSubmit(value) {
    var list = [...this.state.list, value];
    this.setState({
      list:list
    })
  }

然后,父组件再将 topHeader.js传来的数据传递给middleContent.js,子组件通过props来接收数据
App.js

<MiddleContent content={this.state.list}/>

middleContent.js

<ul>
      {
          this.props.content.map((item, index) => {
            return (
              <li key={index} className="middle-li">
                {item}
              </li>
            )
          })
       }
</ul>

通过遍历数据将其显示在页面上

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,867评论 1 32
  • 第一天:想说“不”时别说“行” 打破马上说行的习惯 1.拖延时间,不要马上做出答复 1.1 电话请求 “你能先别挂...
    天蓝的新灵阅读 1,315评论 0 0
  • 我始终相信:心慈则貌美。 谚语说:有心无相,相逐心生;有相无心,相随心灭。这句话说明:一个人的相貌是会随着他的心念...
    净心格物阅读 4,095评论 0 0
  • 文/小包总。 2018.9.04星期二 复盘337天 a区关键词:运动健身、硬本领构建、人际交往、社群管理...
    首席成长官小包总阅读 1,486评论 0 0
  • 删除 null image 删除所有镜像 删除名称中包含某个字符串的镜像
    SlowGO阅读 11,869评论 0 0

友情链接更多精彩内容