Button Component上的setNativeProps

时间:2018-05-20 15:50:33

标签: react-native button react-props

当我在React Native中将button定义为:

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

onPress功能为:

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

我收到以下错误:

  

this.refs.buttonRef.setNativeProps不是一个函数。 (在   “this.refs.buttonRef.setNativeProps({             颜色:“#fffffff”           })','this.refs.buttonRef.setNativeProps'未定义)

但是,如果我要定义任何其他类型的组件,例如text input

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

使用该功能更改其道具:

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

一切都变了。

是否有button组件无法通过setNativeProps设置其原生道具的原因?

1 个答案:

答案 0 :(得分:1)

Button组件是一个从Touchable组件创建的简单自定义组件,它没有ref属性。您可以查看Button组件here的源代码。

如果您需要更改组件的属性,则应使用其状态值。

<强>示例

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

//....

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