You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native函数式组件useState不生效 点击按钮控制台无输出报错

问题原因
  1. 语法报错触发原因:return返回的JSX结构末尾存在无效字符串enter code here,该内容不属于任何合法JSX节点,直接放在闭合标签外导致编译语法报错。
  2. 控制台无预期输出原因:TextInput组件的onChange事件返回值是原生事件对象,不是用户输入的文本内容,你直接将事件对象存入entGoal状态,存储内容不符合预期,自然无法打印输入的目标内容。
修复方案
  • 删除JSX结构末尾多余的enter code here无效代码,解决语法报错问题。
  • 将TextInput的onChange属性替换为onChangeText,该API是React Native针对输入组件提供的便捷回调,会直接返回用户输入的字符串,匹配你现有textHandler的参数接收逻辑。
修复后完整代码
import { StatusBar } from "expo-status-bar";
import React, { useState } from "react";
import { StyleSheet, Text, View, Button, TextInput } from "react-native";

export default function App() {
      const [entGoal, setEntGoal] = useState("");
      const textHandler = (entText) => {
        setEntGoal(entText);
      };
      const addHandler = () => {
        console.log(entGoal);
      };
      return (
        <View style={{ margin: 12, padding: 50 }}>
          <View>
            <Text>Goals List!</Text>
            <TextInput
              placeholder="Enter Goal"
              style={{ borderBottomWidth: 1, borderColor: "black" }}
              value={entGoal}
              onChangeText={textHandler}
            />
            <Button title="Add (+)" onPress={addHandler} />
          </View>
        </View>
      );
}

内容的提问来源于stack exchange,提问作者Athira M V

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 20:15:00