React 组件更新晚了
React component is updating late
我正在使用 React.useEffect()
,结果更新较晚。为什么会这样?
function Process(props) {
const [results, setResults] = React.useState({
number: "",
f: {}
});
let data = props.data; //returns object from another component which changes
React.useEffect(() => {
return () => setResults(data)
}, [data]);
return (
<p>{results.number}</p> //ouputs previous number
);
};
如果您需要将 props={data}
传递给 Process()
的组件,请告诉我。
谢谢
如果 props.data
已经是一个 useState 就没有必要使用另一个 useEffect 和 useState,React 已经处理了,你可以只使用值
function Process(props) {
let data = props.data;
return <p> { data.number } </p>
}
useEffect 函数的 return 值是一个被调用以清除 useEffect 作用的函数
如果您想 运行 setResults 在 data
改变时立即执行,请在函数体中执行
React.useEffect(() => {
setResults(data)
}, [data]);
我正在使用 React.useEffect()
,结果更新较晚。为什么会这样?
function Process(props) {
const [results, setResults] = React.useState({
number: "",
f: {}
});
let data = props.data; //returns object from another component which changes
React.useEffect(() => {
return () => setResults(data)
}, [data]);
return (
<p>{results.number}</p> //ouputs previous number
);
};
如果您需要将 props={data}
传递给 Process()
的组件,请告诉我。
谢谢
如果 props.data
已经是一个 useState 就没有必要使用另一个 useEffect 和 useState,React 已经处理了,你可以只使用值
function Process(props) {
let data = props.data;
return <p> { data.number } </p>
}
useEffect 函数的 return 值是一个被调用以清除 useEffect 作用的函数
如果您想 运行 setResults 在 data
改变时立即执行,请在函数体中执行
React.useEffect(() => {
setResults(data)
}, [data]);