Next.jsReact在组件中生成随机值时发出警告

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Next.jsReact在组件中生成随机值时发出警告相关的知识,希望对你有一定的参考价值。

我正在构建一个 next.js 应用,生成一些随机数,从而产生警告。

警告: 文本内容不匹配。服务器:"1 "1" 客户端: "2"

我想我明白为什么会收到这个警告(虚拟DOM与服务器发送的内容有点不同步)。我只是想知道是否有办法让next.jsReact知道这种情况下是可以的。还是有办法只在服务器上生成随机的,让客户端使用这个作为文字?

或者我应该忽略这个警告?

答案

javascript随机变量移动到React状态,为我解决了这个问题。

这是我的问题(简化)之前。

function RandomNumber() {
  const randomNumber = Math.floor(Math.random() * 100);
  return <p>{randomNumber}</p>;
}

function RandomNumber() {
  const [randomNumber, setRandomNumber] = useState(undefined);

  useEffect(() => {
    setRandomNumber(Math.floor(Math.random() * 100));
  }, []);

  return <p>{randomNumber}</p>;
}

我的代码使用了React Hooks useStateuseEffect但之前的React生命周期方法 setStatecomponentDidMount 应该也行

以上是关于Next.jsReact在组件中生成随机值时发出警告的主要内容,如果未能解决你的问题,请参考以下文章

在 React 组件中生成输入

.NET Core 中生成验证码

在php中生成随机密码

在javascript中生成随机整数的最快方法是啥?

在 pyCuda 内核中生成单个随机数

如何在 Bash 中生成随机数?