reactjs - How to get response after a function call in React JS?
问题描述
Hi I am calling a function then trying to get response but it is saying undefined. I am passing that response from parent component to child component.
Component code is -
import React from 'react';
import {One, test, test1} from './Sample/SampleData';
let data:DataInterface = One;
const onChangeId = (Id:string) => {
switch (Id) {
case '1':
data = test
break;
case '2':
data = test1
break;
default:
data = One;
break;
}
console.log(data, " Data")
}
export const Test = () => {
return (
<div>
<ParentComponent
firstData={One}
onChangeId={onChangeId}
secondData={data}
/>
</div>
);
};
Parent Component code is -
import React from 'react';
export const ParentComponent = ({
firstData,
onChangeId,
secondData
}: NewInterface) => {
const [format, setFormat] = useState(secondData);
const onChange = (
type: string,
val:string
) => {
if (type === "welcome) {
onChangeId(val);
setTimeout(() => {
setFormat(secondData)
}, 2000)
console.log(secondData , "secondData")
}
};
return (
<React.Fragment>
<ChildComponent
onChange={onChange}
firstData={firstData}
newData={format}
/>
</React.Fragment>
);
}
When first tie component renders then I am getting secondData, but when I call onChangeId event I am getting secondData as undefined. So how can I resolve this issue ?
NOTE: We can't create seperate onChangeId event it must be inside onChange function as I am doing some other works too in ChildComponent.
解决方案
将 useState 钩子移到 onChange 方法之外
export const ParentComponent = ({
firstData,
onChangeId,
secondData
}: NewInterface) => {
const [format, setFormat] = useState(secondData);
const onChange = (
type: string,
val:string
) => {
if (type === "welcome") {
onChangeId(val);
setTimeout(() => setFormat(secondData), 2000)
console.log(secondData , "secondData")
}
};
推荐阅读
- javascript - oauth20 工作正常,但本地护照不工作
- clang - clang [bcc32c 警告] 重新声明不应添加 'dllexport' 属性
- angular - 使用循环在角度材料表中显示来自 json 文件的数据
- mysql - 节点/类型脚本中的 Mysql
- puppeteer - Puppeteer 避免 akamai 检测
- javascript - 无法使用 await-async 函数访问变量
- javascript - Discord JS - 反向查找以从其显示名称中获取用户 ID
- neo4j - Neo4j中如何划分与两个不同节点相关的节点的依赖关系?
- python - 使用索引修剪数据框
- python - 如何避免通过 np.lib.stride_tricks.as_strided() 从 2d 数组创建 3d 数组但里面的元素不正确