在 React js 中使用 Context 和 hook
Using Context and hook in react js
是我吗... 3 小时前我有一个关于如何使用 context 和 usestate 在反应中的问题,但我自己找到了答案,但现在,我遇到了另一个麻烦,是关于 setState 或 setcategoria 的我的情况,所以这是组件:
CategoriaState.js
const [ categorias, setCategorias ] = useState(Data);
const AddCategoria = (description, idPadre) => {
categorias.push({
id: categorias.length,
description: description,
idPadre: idPadre
});
console.log(categorias);
return true;
};
const DelCategoria = (id) => {
const newData = categorias.filter( item => item.id !== id );
setCategorias({ newData });
return true;
};
return(
<CategoriaContext.Provider
value={{
categorias: categorias,
GetCategorias,
AddCategoria,
DelCategoria
}}
>
{props.children}
</CategoriaContext.Provider>
)
函数 GetCategorias、Addcategorias 工作得很好!!!但问题出在 DelCategoria,这是错误:
Uncaught TypeError: categorias.map is not a function
因此,如果我在 setCategorias({ newData }) 行中进行通信;在函数DelCategoria中,没有显示错误,幸好变量categoria没有更新,我想错误就在那里。
所以我从我的组件中调用函数 DelCategoria AllCat.js
.
.
.
const { categorias, GetCategorias, DelCategoria } = useContext( CategoriaContext );
useEffect(() => {
GetCategorias();
},[])
.
.
.
<button onClick={ () => DelCategoria(item.id) } >
Del Item
</button>
我的意图是使用上下文和 usestate 在 React js 中创建一个简单的示例,我想理解这个 api(使用上下文)
谢谢!!
您正在将类别 属性 设置为对象,而不是数组
setCategorias({ newData });
改成 setCategorias(newData)
,我认为这应该可行
是我吗... 3 小时前我有一个关于如何使用 context 和 usestate 在反应中的问题,但我自己找到了答案,但现在,我遇到了另一个麻烦,是关于 setState 或 setcategoria 的我的情况,所以这是组件:
CategoriaState.js
const [ categorias, setCategorias ] = useState(Data);
const AddCategoria = (description, idPadre) => {
categorias.push({
id: categorias.length,
description: description,
idPadre: idPadre
});
console.log(categorias);
return true;
};
const DelCategoria = (id) => {
const newData = categorias.filter( item => item.id !== id );
setCategorias({ newData });
return true;
};
return(
<CategoriaContext.Provider
value={{
categorias: categorias,
GetCategorias,
AddCategoria,
DelCategoria
}}
>
{props.children}
</CategoriaContext.Provider>
)
函数 GetCategorias、Addcategorias 工作得很好!!!但问题出在 DelCategoria,这是错误:
Uncaught TypeError: categorias.map is not a function
因此,如果我在 setCategorias({ newData }) 行中进行通信;在函数DelCategoria中,没有显示错误,幸好变量categoria没有更新,我想错误就在那里。
所以我从我的组件中调用函数 DelCategoria AllCat.js
.
.
.
const { categorias, GetCategorias, DelCategoria } = useContext( CategoriaContext );
useEffect(() => {
GetCategorias();
},[])
.
.
.
<button onClick={ () => DelCategoria(item.id) } >
Del Item
</button>
我的意图是使用上下文和 usestate 在 React js 中创建一个简单的示例,我想理解这个 api(使用上下文)
谢谢!!
您正在将类别 属性 设置为对象,而不是数组
setCategorias({ newData });
改成 setCategorias(newData)
,我认为这应该可行