我不再做很多 React 编程,所以我希望这个有一个简单的答案。
我有一个模拟生成器函数,它以 2 秒的间隔返回 3 个素数。当它们返回时,我将产生的每个素数插入到一个列表中。在返回所有 3 个素数之前,该列表不会呈现。我只附上相关代码。
function* testPrimes(addPrime) {
const primes = [3, 5, 7];
let time = Date.now();
let i = 0;
do {
const nTime = Date.now();
if (nTime - time > 2000) {
yield primes[i++];
time = nTime;
}
} while (i < primes.length);
}
在父组件中,我填充包含的列表(实际上只是 div):
return (
<div>
<div>{appState === RUNNING ? "Running..." : "Stopped"}</div>
<div className="row">
{(() => {
if (appState === RUNNING) {
for (const prime of testPrimes()) {
console.log("foo");
primes.push(<Response {...{ prime, key: prime }} />);
}
}
})()}
{primes}
</div>
</div>
);
我看到每隔一段时间打印出“foo”,但 <Response> 组件是一次性呈现的。