反应功能组件-说它不是一个功能
React functional components- say its not a function
我正在使用 React 功能组件(实际上是学习钩子),所以我在调用另一个函数时遇到了一个问题
这是我的代码
我的功能组件
const LiteraryPage = props => {
if (Object.keys(mainData).length === 0 && mainData.constructor === Object) {
setMainDataSection(validateData(mainData));
}
const validateData = async (data) => {
let finalDataArray = [];
if (data.cars !== undefined) {
finalDataArray = finalDataArray.concat(data.cars);
}
if (data.mobiles !== undefined) {
finalDataArray = finalDataArray.concat(data.mobiles);
}
if (data.scooters !== undefined) {
finalDataArray = finalDataArray.concat(data.scooters);
}
return finalDataArray;
};
}
但是出现错误
未捕获类型错误:validateData 不是函数
如有遗漏或错误之处,请指正。
您可能在调用验证数据和 setMainDataSection 时直接在功能组件内部设置状态。
所以首先你需要在使用它之前定义 validateData 其次,你需要在 useEffect
中执行你的检查
const LiteraryPage = props => {
const validateData = async (data) => {
let finalDataArray = [];
if (data.cars !== undefined) {
finalDataArray = finalDataArray.concat(data.cars);
}
if (data.mobiles !== undefined) {
finalDataArray = finalDataArray.concat(data.mobiles);
}
if (data.scooters !== undefined) {
finalDataArray = finalDataArray.concat(data.scooters);
}
return finalDataArray;
};
useEffect(() => {
if (Object.keys(mainData).length === 0 && mainData.constructor === Object) {
setMainDataSection(validateData(mainData));
}
}, []);
}
我正在使用 React 功能组件(实际上是学习钩子),所以我在调用另一个函数时遇到了一个问题
这是我的代码
我的功能组件
const LiteraryPage = props => {
if (Object.keys(mainData).length === 0 && mainData.constructor === Object) {
setMainDataSection(validateData(mainData));
}
const validateData = async (data) => {
let finalDataArray = [];
if (data.cars !== undefined) {
finalDataArray = finalDataArray.concat(data.cars);
}
if (data.mobiles !== undefined) {
finalDataArray = finalDataArray.concat(data.mobiles);
}
if (data.scooters !== undefined) {
finalDataArray = finalDataArray.concat(data.scooters);
}
return finalDataArray;
};
}
但是出现错误
未捕获类型错误:validateData 不是函数
如有遗漏或错误之处,请指正。
您可能在调用验证数据和 setMainDataSection 时直接在功能组件内部设置状态。
所以首先你需要在使用它之前定义 validateData 其次,你需要在 useEffect
中执行你的检查const LiteraryPage = props => {
const validateData = async (data) => {
let finalDataArray = [];
if (data.cars !== undefined) {
finalDataArray = finalDataArray.concat(data.cars);
}
if (data.mobiles !== undefined) {
finalDataArray = finalDataArray.concat(data.mobiles);
}
if (data.scooters !== undefined) {
finalDataArray = finalDataArray.concat(data.scooters);
}
return finalDataArray;
};
useEffect(() => {
if (Object.keys(mainData).length === 0 && mainData.constructor === Object) {
setMainDataSection(validateData(mainData));
}
}, []);
}