首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSX本机setState将呈现JSX元素

JSX本机setState将呈现JSX元素
EN

Stack Overflow用户
提问于 2022-05-12 06:19:47
回答 2查看 111关注 0票数 0

我有两个文本输入和一个按钮

当我点击按钮时,它会改变它的颜色。

喜欢

我的问题是什么时候我点击按钮(setState)

只有JSX元素将呈现,TextInput将被清除。

(输入)

(点击)

如何使用并避免这种情况

代码-示例https://snack.expo.dev/@tsaihenry/add958

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-05-12 06:34:53

按照您的代码,TextElement是一个返回JSX.Element的函数。因此,将<TextElement />更改为{TextElement()},它将呈现函数返回的JSX元素。这样,输入就不会被清除。

代码语言:javascript
复制
return (
    <View style={styles.container}>

       <TextInput
        style={styles.input}
        placeholder="useless placeholder"
      />

      {TextElement()}
      
      <Button
        title="Press me"
        onPress={pressAgree}
        color = { (agree) ? "#f194ff" : "#94fff1"}
      />

    </View>
  );
票数 1
EN

Stack Overflow用户

发布于 2022-05-12 06:30:33

您可以使用受控输入字段。受控组件将按照您的状态运行。无论何时按下按钮,它都会清除输入字段。

代码语言:javascript
复制
const [textValue, setTextValue] = useState("");


  const pressAgree = () => {
    setAgree(!agree);
    setTextValue("");
  }

 <TextInput
        value={textValue}
        style={styles.input}
        placeholder="useless placeholder"
      />

       <Button
        title="Press me"
        onPress={pressAgree}
        color = { (agree) ? "#f194ff" : "#94fff1"}
      />
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72210894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档