У меня проблема с реакцией на родной, и я как бы застрял в том, почему это не работает. Я пытаюсь обновить свое состояние на странице друзей, используя свойство onChangeText компонента ввода из react-native-elements.
export default class FriendsPage extends Component {
constructor(props) {
super(props);
this.state = {
search:'',
loading:false
};
}
findFriend(){
//Does stuff
}
renderButtonOrLoading() {
if(this.state.loading){
return <Text>Loading</Text>
}
return(
<View style={styles.container}>
<Button title = "Search" onPress={()=>this.findFriend()} styles={styles.button}/>
</View>
);
}
render(){
console.log(this.search)
return(
<View style={styles.container}>
<TextInput style={styles.input}
placeholder='username'
onChangeText={search =>this.setState({ search})}/>
{this.renderButtonOrLoading()}
</View>
);
}
}
const styles = StyleSheet.create({
container:{
marginTop: 100,
flex: 1,
alignItems: 'center',
justifyContent: 'center',
}
});
Моя проблема в том, что каждый раз, когда я вызываю функцию findFriends(), я получаю сообщение об ошибке, в котором говорится, что this.search не определен. Я попытался консольно зарегистрировать this.search во время рендеринга, и кажется, что он остается неопределенным в каждом цикле рендеринга. У меня есть ощущение, что я должен как-то использовать реквизит, но я не уверен, так как я относительно новичок, чтобы реагировать.
Изменить: спасибо за все ответы, я пытался вызвать this.search, хотя предполагается, что это будет this.state.search, и это сломало мой код.
this.search
, это должно бытьthis.state.search
. И вам нужно привязатьthis
к функции или использовать функцию стрелки. reactjs.org/docs/handling-events.html codepen.io/gaearon/pen/xEmzGg?editors=0010 - person Uğur Eren   schedule 08.01.2021value={this.state.search}
- person Uğur Eren   schedule 08.01.2021