我是 RN 开发的新手,面临以下问题:当我用 Expo 创建 RN 项目时,我从屏幕上删除了所有内容并添加了必要的组件。所以,我有一个TextInput,它应该将数据添加到变量中。所以,这就是我在 state: 中创建属性的原因 this.state = {text: ''};,它将保留这些数据。但是当我运行项目时,我有这个错误:undefined is not an object. 这是我的屏幕代码:export default function HomeScreen() { this.state = {text: ''}; return ( <View style={styles.container}> <ScrollView style={styles.scrollViewContainer} contentContainerStyle={styles.contentContainer}> <View style={styles.searchContainer}> <TextInput placeHolder="Type something!" onChangeText={(text) => this.setState({text})} value={this.state.text} /> </View> <View> <Button onPress={Alert.alert("Button pressed!")} title="Search" /> </View> <View style={styles.listContainer}> <Text>{this.state.text}</Text> </View> </ScrollView> </View> ) ;}所以,也许这个问题很愚蠢,但请解释这是什么问题以及我该如何解决这个问题。也许代码中还有其他一些时刻,哪些应该改变?
3 回答
![?](http://img1.sycdn.imooc.com/545845b40001de9902200220-100-100.jpg)
偶然的你
TA贡献1841条经验 获得超3个赞
该onPress应该调用的函数。试试这个方法:
<Button
onPress={() => Alert.alert("Button pressed!")}
title="Search"
/>
处理触摸文档中解释了相同的示例:
希望能帮助到你,
![?](http://img1.sycdn.imooc.com/54584dd900014f6c02200220-100-100.jpg)
红颜莎娜
TA贡献1842条经验 获得超12个赞
如果您使用功能组件,则绝对应该使用 Hooks 而不是state
对象,但是当您使用 Expo 时,我猜所使用的 React 和 React Native 版本太旧,无法启用 Hooks
将您的组件更改为类组件,因此在构造函数中您可以拥有一个状态对象,并在您的渲染方法中使用它
添加回答
举报
0/150
提交
取消