后坐力:重复原子键 - 在 nextjs 中

问题描述

我确实在我的 nextjs 应用程序中使用了反冲。 但是,如果我接下来运行(在开发或生产中没有区别),我会收到以下错误消息:

重复原子键“companyData”。这是一个致命的错误 生产。但是,如果由于以下原因而发生此警告,则忽略此警告是安全的 热模块更换。

这是我实现它的方式:

/src/stores/CompanyStore.js

import { useSetRecoilState,useRecoilValue,atom } from 'recoil';
import config from '../../content/config.yml';

const companyData = atom({
  key: 'companyData',default: {...config.company},});

export const useSetCompanyData = () => useSetRecoilState(companyData);
export const useCompanyData = () => useRecoilValue(companyData);


export default {
  useSetCompanyData,useCompanyData,};

我在某些组件中是这样使用它的:

MyComponent.js

import React from 'react';
...
...

import {useCompanyData} from '../stores/CompanyStore';

const MyComponent = () => {
  const classes = useStyles();
  const companyData = useCompanyData();
  const { summary: headline,description } = companyData;

return (<div><h2>{headline}</h2><p>{description}</p>)

我不明白,为什么会出现此错误消息。可能是 nextjs 中的错误导致的,还是我以错误的方式实现了反冲?

解决方法

当您在单独的文件中有状态时,nextjs 中的后坐力看起来有问题: https://github.com/facebookexperimental/Recoil/issues/733

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...