小编Jpa*_*061的帖子

React useRef 不更新和渲染新值

我是一名初学者 React 开发人员,我对这个特定的代码片段有疑问。

问题:

  1. 即使我直接复制其值并将其呈现为单独的子项,也并非所有虚拟数据都被呈现
  2. 当我单击添加按钮创建新的输入表单时,它不会添加到渲染中。

我特意选择使用 useRef 而不是 useState,因为在用户添加或编辑他们想要的任何链接后,我想将 keyRef 发送到 NoSQL 数据库;而当我使用 useState() 时,它给了我陈旧的状态问题,其中包含所有链接的数组没有不断更新。

有什么建议么?谢谢,麻烦您了!

CodeSandbox链接:https://codesandbox.io/s/react-hooks-counter-demo-forked-0bjdy?file=/src/index.js

应用程序.js

import React, { useState, useRef } from "react";
import ReactDOM from "react-dom";
import { links } from './links';

import "./styles.css";

function App() {
  const [loaded, setLoaded] = useState(false);
  const formRef = useRef([]);
  const keyRef = useRef([]);

  if (!loaded) {
    keyRef.current = links;
    links.forEach(link => RenderLinks(link.id));
    setLoaded(true);
  }

  function RenderLinks(id) {
    const formLength = formRef.current.length;

    if (id === null)
    formRef.current = …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-hooks

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

Node.js 是否考虑使用工作线程进行多线程?

在我的一生中,我认为 Node.js 和 JavaScript 是一种单线程语言。Node.js 不适合 CPU 密集型任务,但由于其单线程性质,它是轻量级的。多线程适用于 CPU 密集型任务,因为您可以将任务委托给不同的线程,但它为竞争条件创造了可能变得复杂的开放。

然后是工作线程,告诉我节点现在可以产生名为“工作线程”的线程来传递 CPU 密集型任务,因此它不会阻塞 JavaScript 堆栈。为什么人们把 JavaScript 称为单线程,就像一个永久的定义,如果有了工作线程的力量,它实际上可以是多线程的?或者 JavaScript 确实是永久单线程的,但是借助工作线程的强大功能,一个进程可以拥有多个 JavaScript 线程,而这些线程仍然是单线程的?

Node.js 使用两种线程:一个由事件循环处理的主线程和工作池中的几个辅助线程。

另外,我读过的这篇文章说了上面的说法。这听起来就像 JavaScript 一直在使用多个不同的线程。为什么人们将 JavaScript 称为单线程?

javascript multithreading node.js

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

如何使用 Jest 测试不同的屏幕宽度

有人知道如何使用 Jest 测试 React 组件的不同屏幕宽度或响应能力吗?我一直在寻找这样做的正确方法,但没有一个解决方案对我有用。例如,我发现有人建议matchMediaPolyfill(window)和有人建议用自定义宽度模拟 div,但这些解决方案都不起作用。请帮忙!谢谢!

javascript unit-testing reactjs jestjs responsive

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

如何动态改变SVG填充颜色?

我想动态更改 SVG 图像的颜色,而无需内联 SVG 标签(必须静态放入<svg><path="...">等),以便消费者可以自由地使用他们想要的任何 SVG 图像和颜色。

用户所要做的就是传入 SVG 标签的 src 和十六进制颜色,我的代码应该动态地将这些颜色填充应用到 SVG 标签中。

你有什么建议吗?谢谢你!

消费者看到的:

import Frame from './Frame.svg';
...
<Icon src={Frame} color='purple' />

Run Code Online (Sandbox Code Playgroud)

我对 UI 组件代码的尝试:

import React from 'react';
import styled from 'styled-components';

const Icon = ({ src, color }) => {
  const StyledSVGIcon = styled(src)`
    width: 67px;
    height: 72px; 
    fill: ${color};
  `;
  return <StyledSVGIcon />
};
Run Code Online (Sandbox Code Playgroud)

框架.svg

<svg width="73" height="71" viewBox="0 0 73 71" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0)">
<path d="M47.0139 71H40.8997C39.8807 71 …
Run Code Online (Sandbox Code Playgroud)

html javascript css svg reactjs

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

有哪些常见的 Redux Toolkit 的 CreateAsyncThunk 用例

有人可以像我 9 岁那样向我解释什么以及如何使用 createAsyncThunk 吗?动作字符串有什么用?它是出于逻辑/路径原因临时创建并很快销毁吗?我可以用动作字符串做什么/人们通常用它做什么?我一直盯着文档看,但我无法理解。

这是其他人使用代码的方式,如果有人能破译这个,我会很高兴。

const action = createAsyncThunk('send/sendAction', async (form, thunkAPI) => {
  const data = await axios.post('/api', object);
  data.reduxRequestId = thunkAPI.requestId;
  return data;
}
Run Code Online (Sandbox Code Playgroud)

官方文档:https : //redux-toolkit.js.org/api/createAsyncThunk

javascript reactjs redux redux-toolkit

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

Node.js 多线程:什么是工作线程,它是如何工作的?

我一直认为 JS 是一种单线程语言,这使得它对于 CPU 密集型任务效率低下。我最近遇到了工作线程以及它如何通过创建“一个进程下的多个工作线程”来解决这个低效率问题。进程和线程有什么区别?为什么 JS 突然能够产生多个工作线程来帮助主 JS 线程并与之交互以实现并发?你能帮我通俗地理解这个话题吗?谢谢

javascript multithreading single-threaded worker-thread node.js

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