美文网首页
搜索组件 - react中子组件向父组件中传值

搜索组件 - react中子组件向父组件中传值

作者: miner敏儿 | 来源:发表于2018-11-27 16:01 被阅读0次

一个关于搜索的组件, 来更加详细的了解父子组件之间传值的概念
代码量缩短
不推荐:


image.png

推荐:


image.png

子组件中放入搜索的组件
searchBox.js中

class SearchBox extends React.Component {
  constructor() {
    super();
    this.state = {
      nameValue: '',
      idValue: '',
    }
  }
  changeFieldValue = (e, key) => {
    const value = typeof e === 'object' ? e.target.value : e;
    this.setState({
      [key]: value,
    });
  }
  // 获取所有input中的值
  onSearch = () => {
    this.nameValue = this.state.nameValue;
    this.idValue = this.state.idValue;
    // 搜索时的值要传入到父组件的接口. 
    // 所以牵扯到子组件向父组件传值
    // 1.在子组件中定义一个事件. 用父组件传递过来的属性(props),是个函数,
    // 2. 呼叫这个函数把在子组件中拿到的值传递到父组件中的函数进行处理
    this.props.getInitData(
      this.nameValue,
      this.idValue,
    )
    // 3. 去父组件中引用子组件的地方定义一个函数来接收this.props.getInitData传递过来的值
  }
    render() {
        return (
          <div>
            <span>名称:</span>
            <Input
            placeholder="请输入"
            onChange={ (e) => { this.changeFieldValue(e, 'nameValue'); } }
            value={this.state.nameValue}
          />
            <span>id:</span>
            <Input
            placeholder="请输入"
            onChange={ (e) => { this.changeFieldValue(e, 'idValue'); } }
            value={this.state.idValue}
            width="320px"
          />
          <Button
            type="primary"
            style={{ marginLeft: '10px' }}
            className="searchButton"
            onClick={this.onSearch}
            width="320px"
          >
            搜索
          </Button>
          </div>
        )
    }
}
  1. 点击搜索, 需要把搜索的值传到父组件中
    牵扯到子组件向父组件传值
  2. 用父组件传过来的getInitData属性(props,是个函数),呼叫它把value交给父组件中的函数去处理
    this.props.getInitData( this.nameValue, this.idValue, )

3.到父组件中
在引用子组件的地方传入getInitData这个属性
<SearchBox getInitData={this.propsChildEvent} />

  1. 在父组件中定义propsChildEvent这个事件
  // 一旦子组件点击就会触发此事件
    propsChildEvent = (nameValue = '', idValue = '') => {
        this.nameValue = nameValue;
        this.idValue = idValue;
        console.log('this.nameValue==',this.nameValue,
        'this.idValue==',this.idValue
    )
    }

点击搜索按钮

image.png
可以看到, 当点击搜索时 在父组件中就拿到输入的值, 然后就可以调用接口传参了
5.每个页面的ajax请求获取数据肯定是在父组件中的, 那么要把这个请求要传递到子组件的onSearch方法中, 又牵扯到了子组件调用父组件方法或者叫父组件向子组件传递方法类似于父组件向子组件传值.

下一篇

搜索组件 - 父组件向子组件传值(子组件调用父组件方法)

相关文章

  • 搜索组件 - 父组件向子组件传值(子组件调用父组件方法)

    接着上一篇文章继续 , 传送门, 上一篇地址 搜索组件 - react中子组件向父组件中传值 接着, 在上一篇中,...

  • Vue父子组件之间的传值

    1、父组件向子组件传值 父组件中 子组件中 2、子组件向父组件传值 子组件中 父组件中

  • 搜索组件 - react中子组件向父组件中传值

    一个关于搜索的组件, 来更加详细的了解父子组件之间传值的概念代码量缩短不推荐: 推荐: 子组件中放入搜索的组件se...

  • vue中父子组件传值

    vue中父子组件传值是经常使用的场景 父组件向子组件中传值 父组件 子组件 父组件向子组件中传值分三步1、在父组件...

  • react 父子组件传值(兄弟传值)

    react中父子组件传值 父向子: 父组件通过自定义属性向子组件传值,子组件通过this.props.属性名接收子...

  • ReactNative组件间的通信

    父组件向子组件通信 父组件向子组件传值 父组件向子组件传递方法 子组件向父组件通信 子组件向父组件传值 子组件向父...

  • Vue.js父子组件传值

    父组件向子组件传值: 子组件向父组件传值:

  • vue、react对比

    一、父子通信 1. 父组件通过props向子组件传值 vue:父组件 子组件接收 react:父组件: 子组件: ...

  • vue不同组件间传值方式

    父传子子传父非父子传值 1.父组件向子组件进行传值 父组件: 子组件: 2.子组件向父组件传值 子组件: 父组件:...

  • Vue - 传值

    Vue 传值有两种:1)父组件向子组件传值(属性传值,Prop传值)2)子组件向父组件传值 一、父组件向子组件传值...

网友评论

      本文标题:搜索组件 - react中子组件向父组件中传值

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