setNativeProps для компонента кнопки - PullRequest
0 голосов
/ 20 мая 2018

Когда я определяю button в React Native как:

<Button ref="buttonRef" title="Button" onPress={this.buttonPressed}/>

И его onPress функционирует как:

buttonPressed(){
  this.refs.buttonRef.setNativeProps({color:"#ffffff"});
}

Я получаю следующую ошибку:

this.refs.buttonRef.setNativeProps не является функцией.(В 'this.refs.buttonRef.setNativeProps ({color: "#ffffff"})', this.refs.buttonRef.setNativeProps не определено)

Однако, если бы я должен был определитьлюбой другой тип компонента, например text input как

<TextInput ref="userInputRef" value={"this is text"} />

С функцией, изменяющей свои реквизиты:

buttonPressed(){
  this.refs.textRef.setNativeProps({color:"#ffffff"});
}

Все меняется правильно.

Есть ли причиначто компоненту button не удалось установить свой собственный реквизит через setNativeProps?

1 Ответ

0 голосов
/ 20 мая 2018

Button компонент - это простой пользовательский компонент, созданный из Touchable компонентов, и он не имеет свойства ref.Вы можете проверить исходный код Button component здесь .

Если вам нужно изменить свойства компонента, вы должны использовать для этого значения состояния.

Образец

buttonPressed = () => {
  this.setState({color:"#ffffff"});
}

//....

<Button ref="buttonRef" color={this.state.color} title="Button" onPress={this.buttonPressed}/>
...