小编95f*_*973的帖子

如何在 React 功能组件中正确设置 setInterval 计时器?

我刚刚开始学习 React,我正在看一个关于状态和钩子的教程。它只是处理每 1000 毫秒更新一次时间(或者我认为是这样)。

import React from "react";
let count = 0;

function App() {
  const now = new Date().toLocaleTimeString();
  let [time, setTime] = React.useState(now);


  function updateTime(){
    const newTime = new Date().toLocaleTimeString();
    setTime(newTime);
    count++;
    console.log(count);
    console.log(new Date().getMilliseconds());
  }

  setInterval(updateTime, 1000);


  return (
    <div className="container">
      <h1>{time}</h1>
      <button onClick = {updateTime}>time</button>
    </div>
  );
}

export default App;
Run Code Online (Sandbox Code Playgroud)

本教程的目的只是一个关于如何更新时间的简单示例,但我注意到它每 1000 毫秒更新多次(突发)。我怀疑每次对钩子进行更改时都会呈现新组件,但旧组件仍在更新并产生更多组件,导致每 1000 毫秒的调用呈指数增长。

我很好奇这里发生了什么?我将如何去做让我们说有一个每 1000 毫秒更新一次的简单计数器?setTime(count)显然不起作用

javascript reactjs react-component

6
推荐指数
2
解决办法
4736
查看次数

DIV左上角的CSS动画后的额外像素

无法诊断左上角浮动像素的原因div.它只在我添加一个时出现border-radius.

仔细观察每个角落,您可以看到在应用半径之前应用线条时的一些碎片.也许需要一种不同的技术.

CODEPEN

.contest-types { 
	border: 2px solid #BCCED4;
	border-radius: 10px;
	color: #1B2437;
	padding: 10px; 
	margin: 20px; 
	width: 500px; 
  height: 200px;
	background-color: #F9FDFF;
	position: relative;
}

.contest-types:before {
	content: '';
	width: 2px;
	height: 2px;
	background-color: #5697fc;
	position: absolute;
	left: -2px;
	top: -2px;
	display: none;
}

.contest-types:after {
	content: '';
	position: absolute;
	display: block;
	background-color: #5697fc;
}

.contest-types:hover {
	border: 2px solid #5697FC;
	background-color: #FFFFFF;
	animation: border 0.5s ease-out 1;
}


.contest-types:hover:after {
  border-radius: 10px;
	animation: border-after …
Run Code Online (Sandbox Code Playgroud)

html css

4
推荐指数
1
解决办法
98
查看次数

如何在不使用for循环或任何数组方法的情况下检查数组中是否存在元素

如何在不使用for循环或任何数组方法的情况下检查数组中是否存在元素,如果map,reducelet numList= [1,2,3,6,9,2,-8,20];我想检查9和30,如果它存在与否,不使用for循环或任何数组方法

javascript arrays

3
推荐指数
1
解决办法
61
查看次数

验证react-bootstrap中选择类型的输入

我正在处理一个表单,并且正在使用react-bootstrap。我对所有字段进行了验证,除了类型输入之外,它按预期工作select。这是我的表格:

<Form
  className="order-details-form"
  noValidate
  validated={validated}
  onSubmit={handleProceed}
>
  <div className="row phone-number-wrapper">
    <img src={code_arrow} />
    <div className="overlay" />
    <Form.Group
      className="country-code-wrapper"
      onChange={(e) => countryFlagHandler(e)}
    >
      {imgLink && (
        <img
          src={`${imgLink}`}
          alt="country-flag"
          id="img"
          className="flag-img"
        />
      )}
      <Form.Control
        id="select"
        as="select"
        type="select"
        name="country_code"
        onChange={setFormValue}
        value={form.country_code}
      >
        <>
          <option data-countrycode="">Select Code</option>
          {countryCodes}
        </>
      </Form.Control>
    </Form.Group>
    <Form.Group className="col-md-6">
      <Form.Label>Email</Form.Label>
      <Form.Control
        type="email"
        name="email"
        onChange={setFormValue}
        placeholder="Add Email"
        value={oldCustomer ? oldCustomer.email : form.email}
      />
    </Form.Group>
  </div>
  <div className="row">
    <Form.Group className="col-md-6">
      <Form.Label>
        First Name<span className="req-tag">*</span>
      </Form.Label>
      <Form.Control
        required
        type="text"
        name="first_name" …
Run Code Online (Sandbox Code Playgroud)

reactjs react-bootstrap

3
推荐指数
1
解决办法
5534
查看次数

React Date Picker 被隐藏在 Overflow Parent 后面(popover 固定位置问题)

我试图让 react datepicker 的日期选择弹出框从材质 UI 菜单项打开。

我已将菜单项设为 react datepicker 输入字段。问题是我的输入字段是选择日期弹出框的锚点,弹出框在我的菜单中打开。我希望弹出窗口在菜单上方打开。

react datepicker 文档没有很多关于 popover 位置的信息。知道如何实现这一目标吗?

这是弹出窗口被“困住”在菜单中的不需要行为的屏幕截图

我的菜单代码的快速概览:

// this icon is the anchor for the menu
<MoreIcon onClick={handleClick} />
<Menu
  id="simple-menu"
  anchorEl={anchorEl}
  keepMounted
  open={Boolean(anchorEl)}
  onClose={handleClose}
>
  //this is my Date picker component
  <Reschedule handleReschedule={handleReschedule} />
</Menu>
Run Code Online (Sandbox Code Playgroud)

和我的日期选择器组件(使用自定义输入字段作为菜单项):

export const Reschedule = ({ handleReschedule }) => {
  // ref to the datePicker to control open/close
  const calendar = createRef();

  //to Open the date picker
  const openDatepicker = (e) => {
    calendar.current.setOpen(true); …
Run Code Online (Sandbox Code Playgroud)

reactjs material-ui react-datepicker popper.js

3
推荐指数
2
解决办法
1954
查看次数

更改 bootstrap4 卡片类中文本的颜色

我想将字体/文本更改为与默认蓝色不同的颜色。我用不同的设置尝试了这段代码,但颜色保持蓝色。class .text-white 不起作用,字体颜色也不起作用。背景颜色有效,但不适用于文本请帮助。谢谢。

<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">

<div class="container-fluid">
  <div class="row">
    <div class="col">
      <div id="faq" role="tablist" aria-multiselectable="true">
        <div class="card">
          <div class="card-header text-white" rode="tab" id="XX1" style="background-color:PINK; color: white; font color: yellow !important">
            <h4 ass="card-title  text-white">
              <a data-toggle="collapse" data-parent="#faq" aria-expanded="true" href="#A11" aria-controls="XX2">
                                   change my text color
                   </a>
            </h4>
          </div>
          <div id="A11" class="collapse show" role="tabcard" aria-labelledby="questionOne">
            <div class="card-body">
              answer 11
            </div>
          </div>
        </div>

      </div>
    </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

twitter-bootstrap bootstrap-4

2
推荐指数
1
解决办法
7952
查看次数

HTML 在同一页面上搜索

我有一页很长的内容。如果我想创建一个搜索栏,以便当用户搜索单个页面上某处存在的内容时,它将它们重定向到页面的该部分(就像它转到页面的中间或底部)。这是否需要像 PHP 这样的任何后端,或者我可以只用 HTML 来做到这一点?

html javascript php

1
推荐指数
1
解决办法
3200
查看次数

在 Material ui Tables 中为整个边框绘制左边框

我正在尝试处理一个表头中应该有 2 行的表。第一个标题中的每个单元格都应该在第二行(在 header 中)有子单元格。到目前为止,我的设计并未清楚地显示每列的数据。我需要为每列绘制左边框。我不知道该怎么做。

这是我的代码(CodeSandBox)

const useStyles = makeStyles({
  table: {
    minWidth: 650
  }
});

<TableContainer component={Paper}>
  <Table className={classes.table} aria-label="simple table">
    <TableHead>
      <TableRow>
        <TableCell align="center" colSpan={5}>
          MRF
        </TableCell>
        <TableCell align="center" colSpan={1}>
          AD
        </TableCell>
        {/* <TableCell align="center" colSpan={4}>Incinerator</TableCell>
        <TableCell align="center" colSpan={4}>Landfill</TableCell>
        <TableCell align="center" colSpan={4}>Market</TableCell> */}
      </TableRow>
      <TableRow>
        <TableCell>Paper</TableCell>
        <TableCell align="right">Plastic</TableCell>
        <TableCell align="right">Glass</TableCell>
        <TableCell align="right">Metals</TableCell>
        <TableCell align="right">Metals</TableCell>
        <TableCell align="right">Food</TableCell>
      </TableRow>
    </TableHead>
    <TableBody>
      <TableRow>
        <TableCell colSpan={2}>Data Two Columns</TableCell>
      </TableRow>
    </TableBody>
  </Table>
</TableContainer>
Run Code Online (Sandbox Code Playgroud)

预期结果:结果

reactjs material-ui

0
推荐指数
1
解决办法
2万
查看次数