React-Native _this5.setState не является функцией при изменении текста в TextInput? - PullRequest
0 голосов
/ 02 июля 2018

В настоящее время я изучаю React-Native, поэтому прошу прощения, если ответ появился где-то еще. Но в моем приложении всякий раз, когда я изменяю текст в TextInput, программа вылетает с ошибкой _this5.setState is not a function

т.е. если я ищу «Привет», все работает нормально. Но в тот момент, когда я изменяю «Hello» на «Hell», программа вылетает с этой ошибкой.

Вот мой код

export default class App extends React.Component {

  constructor(props){
    super(props)
    this.state = {
      apiKey: 'insertMyAPIKey',
      isLoading: true,
      text: ''
    }
    this.setInputState = this.setInputState.bind(this)
  }
  render() {
    return (
      <View style={{padding: 10}}>
        <TextInput
          style={{height: 40}}
          placeholder="Search For Summoner!"
          value={this.state.text}
          onChangeText={(text) => this.setState({
            text: text
          })}
          clearButtonMode="while-editing"
        />
        <Button 
          onPress={() => {
            this.MyFunctionsToRun(this.state.text)
          }}
          title="Search"
          color="#841584"
        />
        <Text style={{padding: 10, fontSize: 20}}>
          Searching for summoner: {this.state.text}
        </Text>
        <Text>
          The summoner ID: {this.state.summonerID}
        </Text>
        <Text>
          The summoner Rank: {this.state.leagueName}, {this.state.tier} {this.state.rank}, {this.state.leaguePoints}
        </Text>
        <Text>
          The Summoner Win Rate: {this.state.winRate}
        </Text>
        <View>
          <FlatList 
            data={this.state.lastTenGames}
            renderItem={({item}) => <Text>{item.lane}</Text>}
          />
        </View>
      </View>
    );
  }
}

1 Ответ

0 голосов
/ 03 июля 2018

вы можете попробовать это

onChangeText={text => (this.state.text = text)}

или используйте другую функцию

onChangeText={this.changeText}

changeText = text => {
    this.setState({text: text});
};

Я надеюсь, что это работает для вас: D

...