javascript - TypeError: _this.child(key).get 不是函数
问题描述
我正在使用hookstate导入一个将存储在 state 中的数组。
我有这个初始对象 - import { createState } from "@hookstate/core";
const initialState = {
exerciseDetails: [
{
exerciseID: 1,
exerciseName: "ex name",
exerciseDesc: "desc",
},
],
};
const exerciseState = createState(initialState);
export default exerciseState;
然后我访问我的功能组件中的对象 -
function CreateWorkoutScreen(){
const global = useState(exerciseState);
const { exerciseDetails } = global.get();
}
这给了我以下错误-TypeError: _this.child(key).get is not a function. (In '_this.child(key).get()', '_this.child(key).get' is undefined)
但是,如果我将初始状态更改为
const initialState = {
count: 0,
};
并在我的功能组件中访问它
function CreateWorkoutScreen(){
const global = useState(exerciseState);
const { count } = global.get();
}
它按预期工作。我猜我没有正确访问数组?我在这里使用错误的语法吗?
提前致谢!!
解决方案
问题是您没有useState
从导入@hookstate/core
,而是从React
const global = useState(exerciseState); //define global state locally with hookstate's useState method
const { exerciseDetails } = global.get();
const accessFunction = () => {
const type1 = global.exerciseDetails.get(); //works
const type2 = global["exerciseDetails"].get(); //works
//const type3 = global[exerciseDetails].get(); //error
const { exerciseDetails } = global.get(); //works
return [exerciseDetails, type1, type2];
};
这里也是工作示例:https ://codesandbox.io/s/dry-field-vjp61?file=/src/App.js
推荐阅读
- python - 如何将变量传递给另一个模块中的另一个函数
- javascript - 创建了一个没有错误的弹出模式,但它没有显示图像/描述
- c# - Asp.Net Core 2.1 获取请求不通过
- python-3.x - 在类中创建 AsyncHTTPClient 对象会导致 FileNotFound 错误
- vector - 有没有办法在 Rust 中从 1 开始索引向量?
- sql - SQL需要连接表和返回值的条件
- regex - notepad++ 正则表达式查找、替换和保持匹配
- javascript - 从 json 数组中删除特定元素
- r - 如何让cowplot小网格线成为标准ggplot默认软灰色,而不是纯黑色
- android - 如何在 Kotlin 中移动视图