setNativeProps是否可用于任何组件?

时间:2019-01-30 05:18:32

标签: reactjs react-native

(我不确定这是否是重复的主题,但找不到关于我自己的问题的讨论)

我读到有关setNativeProps here的内容,这使我感到很有前途。但是我承认我不确定该API是否可以在特定组件(即TextInput)中使用,还是可以将其用于任何自定义组件来更新任何道具。

以下是我的环境: 反应本机:0.57.1​​, 反应:16.7.0

我通过这个简单的测试尝试更新自定义组件的label道具-但这没用。

class MyButton extends React.Component {
  setNativeProps = (nativeProps) => {
    this._root.setNativeProps(nativeProps);
  }

  render() {
    return (
      <View ref={component => this._root = component} {...this.props}
        style={{alignContent:'center', justifyContent:'center'}}>
        <Text style={{fontSize:50}}>{this.props.label}</Text>
      </View>
    )
  }
}

export default class App extends React.Component {
  onButtonPress = () =>
  {
    this._button.setNativeProps({
      label: 'Changed Text!'
    });
  }
  render() {
    return (
      <TouchableOpacity onPress={this.onButtonPress}>
        <MyButton ref={component => this._button = component} label="Press me!" style={{flex:1}} />
      </TouchableOpacity>
    )
  }
}

我们可以假设以上述方式执行此操作,还是我做错了(?)

0 个答案:

没有答案