为了账号安全,请及时绑定邮箱和手机立即绑定

在 Expo 项目中从 TextInput 获取文本时 undefined 不是对象

在 Expo 项目中从 TextInput 获取文本时 undefined 不是对象

达令说 2021-08-26 19:28:04
我是 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 回答

?
偶然的你

TA贡献1841条经验 获得超3个赞

该onPress应该调用的函数。试试这个方法:


<Button

  onPress={() => Alert.alert("Button pressed!")}

  title="Search"

/>

处理触摸文档中解释了相同的示例:


希望能帮助到你,


查看完整回答
反对 回复 2021-08-26
?
红颜莎娜

TA贡献1842条经验 获得超12个赞

如果您使用功能组件,则绝对应该使用 Hooks 而不是state对象,但是当您使用 Expo 时,我猜所使用的 React 和 React Native 版本太旧,无法启用 Hooks

将您的组件更改为类组件,因此在构造函数中您可以拥有一个状态对象,并在您的渲染方法中使用它


查看完整回答
反对 回复 2021-08-26
  • 3 回答
  • 0 关注
  • 178 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信