Ale*_*min 10 javascript react-usememo
我有这个错误:
src/index.js 第 9:36 行:作为 value prop 传递给 Context 提供程序的对象(第 9 行)每次渲染都会发生变化。要解决此问题,请考虑将其包装在 useMemo 钩子中 React/jsx-no-constructed-context-values
我不确定useMemo在这种情况下如何使用。
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
import FirebaseContext from './context/firebase';
import { firebase, FieldValue } from './lib/firebase';
import './styles/app.css';
ReactDOM.render(
<FirebaseContext.Provider value={{ firebase, FieldValue }}>
<App />
</FirebaseContext.Provider>,
document.getElementById('root')
);
Run Code Online (Sandbox Code Playgroud)
小智 15
我认为你需要FireBaseContext从另一个组件返回。在该组件中,您可以做一些useMemo让 ESLint 满意的事情。
类似下面的东西(我没有测试过)
import { useMemo } from "react";
import ReactDOM from 'react-dom';
import App from './App';
import FirebaseContext from './context/firebase';
import { firebase, FieldValue } from './lib/firebase';
import './styles/app.css';
ReactDOM.render(
<FireBaseWrapper />,
document.getElementById('root')
);
const FireBaseWrapper = () => {
const fireBaseProviderValue= useMemo(() => ({ firebase, FieldValue }), [firebase, FieldValue]);
return (<FirebaseContext.Provider value={fireBaseProviderValue}>
<App />
</FirebaseContext.Provider>)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20089 次 |
| 最近记录: |