使用flatlist时,React native toggle按钮会变慢

时间:2017-08-13 18:54:50

标签: reactjs react-native

所以我有如下组件

 return (
      <View>
        <View
          style={!this.state.showSearchBar && styles.hidden}
        >
          <Header>
            <View>
              <Item >
                <Icon name="ios-search" />
                <Input placeholder="Search" />
              </Item>
              <Button
                onPress={this.searchBarButton}
              >
                <Text>Search</Text>
              </Button>
            </View>
          </Header>
        </View>

        <View
          style={this.state.showSearchBar && styles.hidden}
        >
          <Header ref={"button"}>
            <Button onPress={() => this.searchBarButton()} transparent>
              <Icon name="search" style={styles.bigblue} />
            </Button>
          </Header>
        </View>
      </View>
    );
  }

当我点击按钮时,我基本上设置状态,所以我隐藏并显示带搜索图标的搜索栏

 searchBarButton() {
    this.setState({ showSearchBar: !this.state.showSearchBar });
  }

和风格

   hidden: {
    height: 0,
    width: 0,
    opacity: 0
  }

所以基本上当我的场景只有标题时,这种方法非常流畅和快速,但是当我添加平面列表或任何其他大列表时,切换之间有1秒的延迟。为什么会这样?是因为setState渲染整个屏幕?那么我怎样才能重新渲染特定的组件。

0 个答案:

没有答案