Как вызвать функцию из другого компонента, используя React с Redux Form? - PullRequest
0 голосов
/ 04 октября 2018

Я пытаюсь вызвать функцию из компонента, когда какой-то 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 голосов
/ 04 октября 2018

Изменить

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

На

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

Убедитесь, что вы передаете fieldValueChanged () в качестве реквизита компоненту FieldSelections при вызове его в MyComponent, например

В вашем MyComponentкогда вы звоните FieldSelections

   <FieldSelections fieldValueChanged={this.fieldValueChanged} />
...