【发布时间】:2021-08-08 11:15:33
【问题描述】:
我无法将 state 和 setState 分配给 ContextProvider 的 value 参数
代码:-
import React, { useState, createContext } from 'react';
import { makeStyles } from '@material-ui/core';
import ProductHeader from './components/productHeader';
import ProductTable from './components/productTable';
const styles = makeStyles((theme) => ({
root: {
height: '92.7%',
position: 'fixed',
width: '85%',
bottom: '0',
right: '0',
border: `1px solid ${theme.palette.success.light} `,
overflow: 'hidden',
},
}));
// use State + use Context
const ProductContext = createContext([]);
const ProductPortion: React.FC = () => {
const classes = styles();
const [products, setProducts] = React.useState([]);
return (
<div className={classes.root}>
<ProductContext.Provider value={[setProducts, products]}>
<ProductHeader />
<ProductTable />
</ProductContext.Provider>
</div>
);
};
export default ProductPortion;
确切的错误:-
TypeScript error in C:/Users/dell/Desktop/Web current Projects/bigosoft/bigosoft/POS-Retail-Frontend/Retail-POS-Frontend/src/components/Management/components/productPortion/index.tsx(26,46):
Type 'Dispatch<SetStateAction<never[]>>' is not assignable to type 'never'. TS2322
24 | return (
25 | <div className={classes.root}>
> 26 | <ProductContext.Provider value={[setProducts, products]}>
| ^
27 | <ProductHeader />
28 | <ProductTable />
29 | </ProductContext.Provider>
我想使用 ContextProvider 将状态及其设置器传递给孩子,但我收到了 TypeScript 错误。
【问题讨论】:
标签: reactjs typescript react-hooks react-state-management createcontext