小编Dee*_*dhy的帖子

这是检测反应组件中第一次渲染的正确方法

我有一个场景,我需要检测组件的第一次渲染。我在这里构建了一个小例子。有人可以向我解释什么是正确的方法吗?

为什么大多数人建议使用 aref而不是普通状态。

https://codesandbox.io/s/condescending-burnell-0ex3x?file=/src/App.js

import React, { useState, useRef, useEffect } from "react";
import "./styles.css";

export default function App() {
  const firstRender = useDetectFirstRender();
  const [random, setRandom] = useState("123");
  useEffect(() => {
    if (firstRender) {
      console.log("first");
    } else {
      console.log("second");
    }
  }, [random]);
  return (
    <div className="App">
      <h1>Random Number is {random}</h1>
      <button onClick={() => setRandom(Math.random())}>Change Name</button>
    </div>
  );
}

//Approach 1
// export function useDetectFirstRender() {
//   const firstRender = useRef(true);

//   useEffect(() => {
//     firstRender.current = …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-hooks use-ref

22
推荐指数
4
解决办法
4万
查看次数

autocomplete ='off'无法在firefox上运行

我正面临一个浏览器问题:

我创建了2个相同域的登录页面.

  1. www.example.com/login.cfm
  2. www.example.com/newLogin.cfm

我在两个页面中为两个表单添加了不同的表单名称.此外,我还autocomplete = 'off'为第二个表单和该表单中的文本字段添加了.(但它是第一个表单).

现在,如果我www.testDomain.com/login.cfm在浏览器中登录时保存用户名和密码,那么即使自动完成关闭,用户名列表也会自动填充在第二个登录页面的用户名字段中.出于安全原因,我需要阻止它.有没有办法做到这一点?我正在使用FireFox V21.

html browser firefox

18
推荐指数
4
解决办法
3万
查看次数

是什么让 `async/await` 语句在 ES6 中顺序运行还是并行运行?

我已经通过线程Await Promise.all() 和multiple await 之间有什么区别?,所以我很清楚 Promise.all 和多次等待。

不过,我对以下 2 种情况还不是很清楚。

在案例 1 中为什么它顺序执行(需要 10 秒)而在案例 2 中它并行执行(需要 4 秒)?

情况1:

function promiseWait(time) {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve(true);
    }, time);
  });
}

async function test1() {
  var t0 = performance.now()

  var a = await promiseWait(1000)
  var b = await promiseWait(2000)
  var c = await promiseWait(3000)
  var d = await promiseWait(4000)

  var t1 = performance.now()
  console.log("Call to doSomething took " + (t1 - t0) …
Run Code Online (Sandbox Code Playgroud)

javascript async-await ecmascript-6 es6-promise

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

如何在javascript中检查一个DateTime是否晚于另一个

通过表格,我得到两个值,如

   Start datetime = '01/12/2013 12:00:00 AM' and
   End datetime = '02/12/2013 12:00:00 AM'.
Run Code Online (Sandbox Code Playgroud)

如何验证开始日期时间必须小于javascript中的结束日期时间?

javascript validation datetime

11
推荐指数
2
解决办法
4万
查看次数

如何正确检测 React JS 中的重新渲染?

假设我们有一个父组件和多个功能子组件。我想清楚地知道父级是否重新渲染,子级是否重新渲染。

在阅读了几篇文章后,我了解到我们可以通过 3 种方法来检测重新渲染。(如果还有更多方法,请告诉我。)

1. 将 a 放入console.log子组件中。

2.在设置中使用Chrome油漆闪烁选项。

在此输入图像描述

3.使用React开发工具

在此输入图像描述

所有这些方法都可以正确地了解组件是否真的重新渲染吗?因为它似乎不能与 React.memo 一起正常工作。

console.log当我用 React.memo 包装子组件时,当父组件重新渲染时,它不会打印,这是正确的。但仍然使用 Chrome 和 React 开发工具突出显示子组件,就像它重新渲染一样。

CodeSandbox: https: //codesandbox.io/s/bold-cloud-iv0rv (如果我们添加一辆新车,静态组件仍然以绿色突出显示,但根据备忘录,它不应该重新渲染。)

现在我怀疑,油漆闪烁是否无法正常工作或 React.memo 有问题?

javascript rerender reactjs virtual-dom react-devtools

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

我们可以在cftransaction中编写数字查询/语句是否有任何限制?

今天在修复一些现有代码中的错误时,我发现了一个奇怪的错误.

分支目标偏移量太大

搜索后我发现它与Java字节码转换有关.以下是我发现的链接:

在我的情况下,cftransaction包含大约870个语句,它工作正常.但我需要在此事务中再添加2个查询.现在,当我在cftransaction中添加一行代码时,我收到此错误.目前我无法将任何现有的cfquery移出cftransaction.

以下是代码的整体结构:

<cftransaction action="begin">

   <cfif URL.action eq 'add'>
         Around 200 lines of queries/statements
   <cfelseif URL.action eq 'edit'>
        Around 200 lines of queries/statements
   </cfif>

    <cfif URL.action eq 'add' or URL.action 'edit'>
          Around 450 lines of queries/statements
    </cfif>

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

有没有解决此问题的解决方法?

coldfusion cfquery coldfusion-9

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

如何使用oauth2从linkedin获取电子邮件,用户连接?

目前我正在为网站实施linkedin登录.(关注http://www.raymondcamden.com/2013/04/03/ColdFusion-and-OAuth-Part-2-Facebook/).我已成功登录,但从linkiedin获取用户数据时出现问题.在LinkedIn中创建应用程序时,没有选项可以获得用户网络连接和其他数据的权限.这是一个截图.

在此输入图像描述

当我尝试使用此URL获取用户连接时

https://api.linkedin.com/v1/people/~/connections?oauth2_access_token=#session.liaccesstoken# 我收到以下错误.

在此输入图像描述

当我尝试获取名字,姓氏和电子邮件时,它只获取名字和姓氏,但不是电子邮件地址.

https://api.linkedin.com/v1/people/~:(id,first-name,last-name,maiden-name,email-address)?oauth2_access_token=#variables.accesstoken

在此输入图像描述

任何有想法的人,为什么它不符合api的期望?

coldfusion linkedin coldfusion-10 linkedin-api

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

如何使用酶测试功能组件内部的方法,因为 instance() 为浅层包装器返回 null?

假设我有一个像这样的简单组件。

import React, { useState } from "react";

const Counter = () => {
  const [counter, setCounter] = useState(0);
  const incCounter = () => {
    setCounter(counter + 1);
  };
  return (
    <>
      <p>Counter value is: {counter}</p>
      <button className="increment" onClick={incCounter}>
        Up
      </button>
    </>
  );
};
export default Counter;
Run Code Online (Sandbox Code Playgroud)

我想使用笑话和酶编写测试用例。但counter.instance()总是返回空值。任何帮助将不胜感激。

import React from "react";
import Counter from "../components/Counter";
import {
  mount,
  shallow
} from "./enzyme";

describe("Counter", () => {
  let counter;
  beforeEach(() => {
    counter = shallow( < Counter / …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs jestjs enzyme react-functional-component

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

Rails 4 生产环境中的资产出现 404 not found 错误

我是java环境中的rails新手。我对轨道 3 到轨道 4 的资产管道几乎没有什么困惑。

目前我在 Rails 4.2.5 中,我在本地环境中创建了一个示例应用程序。我从 app/assets/javascripts 内部创建了一个新的 js 并从视图中引用它,一切似乎在我的本地环境中运行良好。

之后我想用生产环境测试它是如何工作的。这是我所做的步骤。

  1. RAILS_ENV=生产 rake 资产:清理资产:预编译 [创建的所有文件 public/assets]
  2. 以生产模式启动服务器rails server -e production
  3. 现在,当我浏览页面时,我 "NetworkError: 404 Not Found - http://localhost:3000/assets/application-c5c431cb7c0a202f831a634922aaf1d536712002ae74334fb03ba4698b32b84c.js"在 firebug 中收到此错误。

当搜索到几个线程时,他们建议添加config.assets.compile = true。但我不认为这就是解决方案,因为它会减慢应用程序的速度。

请帮忙。

ruby-on-rails asset-pipeline ruby-on-rails-4.1

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

如何将github与visual studio代码连接起来?

我最近开始使用Visual Studio Code(https://code.visualstudio.com/).开始爱它了.但我对如何连接Visual Studio Code到github有一些疑问.

我有一个文件夹,其中包含15个子文件夹和每个子文件夹连接到一个git仓库.当我使用Visual Studio Code打开一个子文件夹/ git repo时,git操作完美运行.但我想使用Visual Studio代码打开根文件夹(包含15个子文件夹),因为我同时在所有repos中工作.根文件夹没有附加到git,它只是我本地的一个包含所有repos的文件夹.

有可能吗?

git visual-studio visual-studio-code

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