首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在这个React JS组件中隐藏setTimeout id?

如何在这个React JS组件中隐藏setTimeout id?
EN

Stack Overflow用户
提问于 2021-10-28 03:21:19
回答 4查看 64关注 0票数 0

我在试着做我认为很简单的事情。在提交由GravityForm组件拉入的表单时,我将handleSubmit状态设置为true,然后呈现感谢消息(这一切都很好,我已经删除了URL,但我可以向您保证这一点是正确的)。

当我加载成功消息时,我的问题就出现了。setTimeout函数显示id。有没有一种方法可以停止它显示该id,或者以不同的方式实现这个函数,这意味着它不会显示?

预期的功能是,感谢消息将显示3秒,然后页面将加载到不同的网站。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import "./form.css";
import React, { Component } from "react";
import GravityForm from "react-gravity-form";
import styled from "styled-components";

export class  Gravity extends Component {

    state = {
        handleSubmit : false,
    }

    successMessage = styled.div`
        display: block;
        color: #fff;
        font-size: 24px;
        text-align: center;
    `;

    render() {
        const { handleSubmit } = this.state;

        if (!handleSubmit) {
            return (
                <GravityForm
                    backendUrl="https://removedurlforclientprivacy.com/wp-json/glamrock/v1/gf/forms"
                    formID="3"
                    onSubmitSuccess={ () => {
                        this.setState({
                            handleSubmit : true,
                        })
                    } }
                    
                />
            );
        } else {
            return (
                <>
                    <this.successMessage>
                        <p>Thanks for entering our competition!<br />If you're our lucky winner, we will let you know.</p>
                    </this.successMessage>
                    { setTimeout(() => window.location.href = 'https://google.co.uk', 3000) }
                </>
            )
            
        }

    }
}

export default Gravity
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2021-10-28 03:40:50

您看到id的原因是因为setTimeout函数返回id。想象一下,setTimeout()调用被简单地替换为123,这样它看起来就像{ 123 },它当然会显示123的值。

隐藏该值的一种方法是将其转换为要计算的表达式-类似于{ 123 && <> },这样将返回空元素,而不是值本身(显然将123替换为您的setTimeout()函数,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{ setTimeout(() => window.location.href = 'https://google.co.uk', 3000) && <></> }

您还可以使用{ 123 && undefined }或{ 123 && null },这很可能导致根本不返回元素,再次确保用setTimeout()函数替换123。

票数 1
EN

Stack Overflow用户

发布于 2021-10-28 03:34:15

您是否可以尝试这种方式,创建一个函数,您可以设置您的成功的东西,并在您的else条件下调用它

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
renderSuccesssMessage = () => {
  setTimeout(() => window.location.href = 'https://google.co.uk', 3000)
  return (
    <this.successMessage>
    <p>Thanks for entering our competition!<br />If you're our lucky winner, we will let you know.</p>
</this.successMessage>
  )
}

并将此函数调用到else条件中

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 else {
        return (
            this.renderSuccessMessage()
        )
        
    }
票数 1
EN

Stack Overflow用户

发布于 2021-10-28 03:31:28

您可以像下面这样更改您的onSubmitSuccess函数,并从else块中删除setTimeout:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
onSubmitSuccess={() => {
                    this.setState({
                        handleSubmit : true,
                    },() => {
                      setTimeout(() => window.location.href = 'https://google.co.uk', 3000)
                    });
                }}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69753194

复制
相关文章
laravel 预加载特定的列
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/112351.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/08
7140
laravel 预加载特定的列
Django ORM 查询表中某列字段值
方式一获取到的是一个QuerySet,内容是键值对构成的,键为表的列名,值为对应的每个值。
BigYoung小站
2020/05/04
3.7K0
将Excel特定某列数据删除
我们之前将表单内的某列数据分到新的excel文件里,那么如何批量将新Excel文件这一特定列进行删除呢?
繁华是客
2023/03/03
2K0
根据表格特定列的内容来追加图标 原
(adsbygoogle = window.adsbygoogle || []).push({});
tianyawhl
2019/04/04
1.4K0
Spark如何读取Hbase特定查询的数据
最近工作需要使用到Spark操作Hbase,上篇文章已经写了如何使用Spark读写Hbase全量表的数据做处理,但这次有所不同,这次的需求是Scan特定的Hbase的数据然后转换成RDD做后续处理,简单的使用Google查询了一下,发现实现方式还是比较简单的,用的还是Hbase的TableInputFormat相关的API。 基础软件版本如下: 直接上代码如下: 上面的少量代码,已经完整实现了使用spark查询hbase特定的数据,然后统计出数量最后输出,当然上面只是一个简单的例子,重要的是能把hbase数
我是攻城师
2018/05/14
2.8K0
Django的filter查询
Django的filter查询 name__contains表示精确大小写的模糊查询 使用name__icontains表示忽略大小写 year_count = DownloadFile.objects.filter(date__contains='2018').count() year_up_rate=round((year_count-DownloadFile.objects.filter(date__contains='2017').count())/1000)
py3study
2020/01/20
7340
针对阅读数等计数功能的实现思路
在项目中会遇到这样记录文章或者其他内容阅读量的需求,最常规的方案就是每一次读取内容的时候把内容表中阅读数的值+1。这个方案非常简单而且也很容易实现,但是这个方案有几个问题:
我的小熊不见了丶
2019/05/23
1.4K0
MySQL优化特定类型的查询(书摘备查)
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wzy0623/article/details/53907619
用户1148526
2019/05/25
1.4K0
R语言:以多列标准筛选特定行
在本期,我们会运用一个病例数据为大家进行讲解示范,这也是大猫课堂第一次针对阅读者提问进行的反馈,也希望大家能提供一些有趣的问题,来和我们一起分享,同时也感谢读者孤鹜惜秋,与我们分享其问题。话不多说,马上进入正题。
用户7652506
2020/08/12
2K0
R语言:以多列标准筛选特定行
计算资源及编程-仅针对生信人员
第 5 章 计算资源及编程 5.1 硬件配置 理论上在个人Windows电脑上面做生物信息学数据分析是不实际的,因为太多的生物信息学相关软件的开发者对windows并不熟练,没办法提供完善的基于windows操作系统的软件。 而且个人Windows电脑配置肯定不会太高,一般的组学测序数据都是10~500G一个样本,而且很多软件运行的时候对内存要求很高,最后这些数据的分析过程会非常耗时,个人电脑在硬盘,内存,cpu方面均不足以承担这个重任。 所以一般建议使用配置比较高的服务器,而且建议给服务器安装linux系
生信技能树
2018/03/09
2.2K0
计算资源及编程-仅针对生信人员
计算资源及编程-仅针对生信人员
理论上在个人Windows电脑上面做生物信息学数据分析是不实际的,因为太多的生物信息学相关软件的开发者对windows并不熟练,没办法提供完善的基于windows操作系统的软件。 而且个人Windows电脑配置肯定不会太高,一般的组学测序数据都是10~500G一个样本,而且很多软件运行的时候对内存要求很高,最后这些数据的分析过程会非常耗时,个人电脑在硬盘,内存,cpu方面均不足以承担这个重任。
生信技能树
2018/07/27
7720
计算资源及编程-仅针对生信人员
聊聊mysql的多列组合查询
• mysql-filtering-by-multiple-columns[1] • selecting-where-two-columns-are-in-a-set[2]
code4it
2022/04/15
4.7K0
聊聊mysql的多列组合查询
序 本文主要展示如何使用mysql的多列组合查询 何为多列组合查询呢,就是查询的值不再是单个列的值,而是组合列的值。比如where (column1,column2) in ((a1,b1),(a2,b2),(a3,b3)) 实例 建表 create table t_demo( id int NOT NULL AUTO_INCREMENT PRIMARY KEY, name varchar(10), score int ); insert into t_demo(name,score)
code4it
2022/04/02
4K0
linux sort 针对某一列排序
score.txt 文件每一行数据是规则的,现在需要针对第2列分数,进行倒序排列。可用 sort 命令
lukachen
2023/10/22
3210
linux sort 针对某一列排序
仅允许特定用户组通过NetScaler访问虚拟桌面
通常情况下我们的AD环境是为企业内多个业务系统提供服务,在交付Citrix VirtualDesktop环境后,我们通常会通过Citrix ADC(原名叫NetScaler)设备作为安全代理网关进行虚拟桌面访问,默认情况下Citrix ADC与AD集成后,所有用户都允许登录,只不过未经授权的用户无法看到任何资源。
SuperDream
2020/06/03
1.2K0
django 模糊查询
同理,price字段支持大于等于 小于等模糊查询,日期支持查询某月的某年的等查询方法。
全栈程序员站长
2022/08/31
3.2K0
django 模糊查询
django分页器的用法_django分页查询
当后台返回的数据过多时,我们就要配置分页器,比如一页最多只能展示10条等等,drf中默认配置了3个分页面
全栈程序员站长
2022/09/19
1K0
Django笔记(九)Django的ORM,查询数据的方法
目前有两个表,一个用户表,一个用户类型表,一个用户对应一类型,但是一个类型下面有好多的用户。
一写代码就开心
2021/11/15
8870
Django笔记(九)Django的ORM,查询数据的方法
hive中常量列的添加和查询
在正常应用场景中,常常会从HIVE中直接获取某个DATAFRAME,这个dataframe除了与数据表中某些字段的提取,还往往会涉及到一些常量列的添加,用以如区分数据等场景。
sparkexpert
2022/05/07
1.2K0
hive中常量列的添加和查询
点击加载更多

相似问题

将时间戳舍入到最接近的日期

661

如何将时间戳舍入到最接近的秒数?

213

将时间戳舍入到teradata中最接近的小时

320

在Python中将时间戳舍入到最接近的日期

30

Postgresql舍入时间戳到最接近的30秒

00
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文