平面清单未呈现extraData

时间:2018-09-08 19:19:38

标签: react-native react-native-flatlist

我的平面列表未呈现ExtraData

所以,这是我的渲染组件

  <TextInput
              style={textInput}
              placeholder="Search Coin"
              onChangeText={(text) => this.onSearch(text)} />


              <FlatList
                extraData={this.state.searchCoin}
               data={this.state.searchCoin ? displaySearchCrypto : this.props.cryptoLoaded}

                    keyExtractor={item => item.short}
                    initialNumToRender={50}
                    windowSize={21}
                    removeClippedSubviews={true}
               renderItem={({ item, index }) => (
               <CoinCard
                  key = {index} />
                    //And more stuff
              )}   />

这里<TextInput实际上是触发onSearch功能的搜索框

onSearch = (text) => {

  if (text == "") {
    this.socket = openSocket('https://coincap.io');
    this.setState({searchCoin: false})
    displaySearchCrypto = []
  } else if (!this.props.cryptoLoading) {
        if (!this.state.searchCoin) {
        this.setState({searchCoin: true})
        }
        this.socket.disconnect();
        displaySearchCrypto = []
        for (let i=0; i<this.props.cryptoLoaded.length; i++) {
          let coinVal = this.props.cryptoLoaded[i]["long"] + this.props.cryptoLoaded[i]["short"]
          if (coinVal.indexOf(text) > - 1) {
              displaySearchCrypto.push({
                no: {i},
                key: this.props.cryptoLoaded[i]["long"],
                //more stuff
               })} } }  }

我读过extraData是为了在状态更改时重新呈现列表,因此我正在做类似extraData={this.state.searchCoin}的事情

我的this.state.searchCoin最初为假,每当用户输入文本时,它就从onSearch变为true,而当用户输入文本时,它就变为false

我想在状态为true时显示displaySearchCrypto,但我的列表完全不变。

注意:我正在使用class cryptoTicker extends Component {,而我已经尝试过extraData={this.state} [问题:] ->我在做什么错了?

0 个答案:

没有答案