首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未处理的拒绝(TypeError):无法在字符串“Message”上创建属性“className”

未处理的拒绝(TypeError):无法在字符串“Message”上创建属性“className”
EN

Stack Overflow用户
提问于 2021-10-06 21:24:30
回答 1查看 602关注 0票数 0

我试图通过在我的网页中使用“EamilJS”来创建“联系人表单”,这个页面是在React.js中创建的。一切正常,但当我添加“动态类名”时,它会返回错误。

这些动态ClassNames的目的是在发送用户消息后显示成功消息。(我指的是博客:https://placidowang.medium.com/how-to-add-an-email-form-to-your-react-website-for-free-using-emailjs-and-react-hook-form-7267d6365291 )

当我点击“发送”按钮时显示的错误,但电子邮件仍然成功提交。

代码语言:javascript
复制
Contact.jsx:21 Uncaught (in promise) TypeError: Cannot create property 'className' on string 'Message'
代码语言:javascript
复制
<h2>Contact</h2>
<p className='status-message' >{statusMessage}</p>
<form onSubmit={handleSubmit(onSubmit)} id='contact-form'>
...
</form>

所以,ClassName

应该更新“状态-消息成功”或“状态-消息”。

代码语言:javascript
复制
const onSubmit = (data) => {
    generateContactNumber();
    sendForm('default_service', 'template_anr3xk1', '#contact-form')
      .then(function(response) {
      // ...
      setStatusMessage("Message sent!");
      statusMessage.className = "status-message success";
      console.log(statusMessage);
      setTimeout(()=> {
        statusMessage.className = 'status-message'
      }, 5000)
    }, function(error) {
      // ...
      console.log(statusMessage);
      setStatusMessage("Failed to send message! Please try again later.");
      statusMessage.className = "status-message failure";
      setTimeout(()=> {
        statusMessage.className = 'status-message'
      }, 5000)
    });
  };

我试图在useState中添加额外的className,如下所示,但是我不能使用"+“

代码语言:javascript
复制
<p className={"status-message" + (useStateVar && "success")}></p>

如果消息已成功发送,如何动态更改className?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2022-11-06 10:43:30

如果要添加类名,还可以替换调用className的方式,例如:

代码语言:javascript
复制
statusMessage.className = "status-message failure";

您不应该调用className,而应该使用属性,如这一行。

代码语言:javascript
复制
statusMessage.attributes['class'].value = "status-message failure";
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69472841

复制
相关文章

相似问题

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