如何使用带有Redux Form的React从不同的组件调用函数?

时间:2018-10-04 13:44:39

标签: reactjs redux-form react-redux-form

当某些Field收到不同的值时,我试图从组件中调用函数。

例如,我有一个组件“ FieldSelections”,用户可以在其中从Field中选择值。选择一个值后,我想从另一个名为fieldValueChanged的组件中调用函数MyComponent

这是我尝试过的

class FieldSelections extends Component {
  handleChange = () => {
    this.child.fieldValueChanged();
  }
}

...

  <Field
      name='field'
      component={renderSelectField}
      onChange={this.handleChange}
  />
  <FieldArray
      name='fieldArray'
      component={MyComponent}
      ref={ obj => this.child = obj; }>
  </FieldArray>

MyComponent.js

class MyComponent extends Component {
  fieldValueChanged = () => {
    console.log('Do Something')
  }
}

但是它给出了这个错误:

  

_this.child.fieldValueChanged不是函数

我在做什么错了?

1 个答案:

答案 0 :(得分:0)

更改

  handleChange = () => {
        this.child.fieldValueChanged();
  }

收件人

  handleChange = () => {
      this.props.fieldValueChanged();
  }

当在MyComponent中调用它时,请确保将fieldValueChanged()作为道具传递给FieldSelections组件

在MyComponent中,当您调用FieldSelections

   <FieldSelections fieldValueChanged={this.fieldValueChanged} />