调用`this.forceUpdate();`后,组件不会更新

时间:2016-10-06 18:14:55

标签: react-native

每次特定事件发生时,我都会使用direct manipulation来更改视图的颜色。

我的渲染功能:

  render() {
    return (
      <View>
        <View
          ref={component => this._view = component}
          style={{width: 50, height: 50}} />
      </View> 
    );

每次特定事件发生时调用的更新函数:

  onSlideChangeHandle(index) {
    this._view.backgroundColor = 'red'
    this._view.forceUpdate()
  }

我是否需要做更多的事情来强制组件改变颜色?调用该方法,并更新属性。不幸的是,UI没有更新调用强制更新。我错过了什么吗?我知道我应该使用状态更新组件,但对于这个特定情况,我真的需要直接操作。

1 个答案:

答案 0 :(得分:0)

我发现了这个问题。我需要使用setNativeProps更新背景颜色。

onSlideChangeHandle(index) {
    this._view.setNativeProps({ style: {
      backgroundColor: 'red'
    } });
}