2016-11-09 2 views
0

У моего родительского компонента есть два отдельных обработчика событий, которые собирают данные из дочерних компонентов.Данные о масштабах в реакторе

class MyComponent extends React.Component{ 
    ... 

    handleClick(data1){ 
    console.log(data1); 

    } 

    handleSubmit(data2){ 
    console.log(data); 
    method(data1, data2) 
    } 

} 

Внутри моего handleSubmit обработчик Я хочу вызвать метод для публикации обоих объектов данных. Как мне получить доступ к data1 внутри обработчика data2?

ответ

0

Если значение данных передаются через другой компонент (родитель), так что это прошло через реквизита и может быть доступна через this.props в случае, если их значения не будут изменены, в противном случае вам может понадобиться, чтобы сохранить ваши данные значения data1 и data2 через состояние компонента быть что-то вроде следующим образом:

handleClick(data1){ 
    this.setState({data1}); 
} 

handleSubmit(data2){ 
    this.setState({data2}); 
    method(this.state.data1, this.state.data2) 
} 
1

Когда делает Реагировать класс и определить методы как вы могли бы использовать this.setState({}), если вы хотите получить доступ к заранее определенному методу (handleClick), вы можете просто написать this.handleClick. Ключ this относится к классу в этом контексте.

class MyCompnonent extends React.Component{ 

handleClick(data){ 
    this.setState({ 
    data1: data 
    }); 
    console.log(data1); 

} 

    handleSubmit(data2){ 
    console.log(data); 
    this.method(this.state.data1, data2); 
    } 

} 
+2

Стоит отметить, что для того, чтобы гарантировать, что звонки на '' this.state.data1' и this.setState' будет иметь правильный объем 'this' в определении обработчика при вызове, вы должны убедитесь, что обработчики событий правильно привязаны к родительскому классу MyComponent, например: 'this.handleClick = this.handleClick.bind (this);'. – Pineda

+0

Спасибо. Стоит ли голосование? :-П – Pineda

Смежные вопросы