首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我在react中得到"setShowModal未定义“错误消息?

为什么我在react中得到"setShowModal未定义“错误消息?
EN

Stack Overflow用户
提问于 2021-05-18 10:51:57
回答 2查看 287关注 0票数 0

我的守则:

代码语言:javascript
复制
import React, { useState } from "react";
import Modal from "./Modal";

function showModal() {
 setShowModal(true);
}

export default function NewPost() {
const [showModal, setShowModal] = useState(false);
if (showModal) {
return (
  <h1>
    <Modal />
  </h1>
);
 }

return (
<div className="new-post">
  <button onClick={showModal} type="button" className="new-post-form">
    Was machst du gerade, Toni?
  </button>
  <div className="options">
    <i style={{ color: "red" }} className="fas fa-stream"></i>
    <p className="option">Live-Video</p>
    <i style={{ color: "green" }} className="fas fa-camera"></i>
    <p className="option">Foto/Video</p>
    <i style={{ color: "yellow" }} className="fas fa-smile"></i>
    <p className="option">Gefühl/Aktivität</p>
  </div>
</div>
);
}

我得描述更多..。(Stackoverflow消息) .................................................................................................

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-05-18 10:58:35

您可以将showModal函数放入NewPost并重命名showModal函数。

代码语言:javascript
复制
    import React, { useState } from "react";
    import Modal from "./Modal";
    
    
    export default function NewPost() {
    const [showModal, setShowModal] = useState(false);

     function newShowModal() {
      setShowModal(true);
    }

    if (showModal) {
    return (
      <h1>
        <Modal />
      </h1>
    );
     }
    
    return (
    <div className="new-post">
      <button onClick={showModal} type="button" className="new-post-form">
        Was machst du gerade, Toni?
      </button>
      <div className="options">
        <i style={{ color: "red" }} className="fas fa-stream"></i>
        <p className="option">Live-Video</p>
        <i style={{ color: "green" }} className="fas fa-camera"></i>
        <p className="option">Foto/Video</p>
        <i style={{ color: "yellow" }} className="fas fa-smile"></i>
        <p className="option">Gefühl/Aktivität</p>
      </div>
    </div>
    );
    }
票数 1
EN

Stack Overflow用户

发布于 2021-05-18 10:54:46

因为setShowModal是在NewPost组件中定义的,所以它在组件之外不可用,只需将showModal函数放在组件中即可。

还可以重命名showModal函数,因为它已经由useState钩子定义

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67584762

复制
相关文章

相似问题

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