在React中,要刷新嵌套组件视图以显示正在执行的搜索结果,可以通过以下步骤实现:
searchResults
。performSearch
。searchResults
作为属性。useEffect
钩子来监听searchResults
的变化,一旦发生变化,即可刷新视图。下面是一个示例代码:
// 父组件
import React, { useState } from "react";
import ChildComponent from "./ChildComponent";
const ParentComponent = () => {
const [searchResults, setSearchResults] = useState([]);
const performSearch = () => {
// 执行搜索逻辑,将结果存储在searchResults中
// 示例中使用setTimeout模拟异步搜索结果
setTimeout(() => {
setSearchResults(["结果1", "结果2", "结果3"]);
}, 2000);
};
return (
<div>
<button onClick={performSearch}>执行搜索</button>
<ChildComponent searchResults={searchResults} />
</div>
);
};
export default ParentComponent;
// 子组件
import React, { useEffect } from "react";
const ChildComponent = ({ searchResults }) => {
useEffect(() => {
// searchResults发生变化时刷新视图
console.log("搜索结果更新:", searchResults);
}, [searchResults]);
return (
<div>
<h2>搜索结果:</h2>
<ul>
{searchResults.map((result, index) => (
<li key={index}>{result}</li>
))}
</ul>
</div>
);
};
export default ChildComponent;
在这个例子中,父组件ParentComponent
包含一个按钮,用于触发执行搜索的函数performSearch
。搜索结果存储在searchResults
状态变量中,并作为props传递给子组件ChildComponent
。
在子组件中,使用useEffect
钩子监听searchResults
的变化。一旦searchResults
发生变化,useEffect
中的回调函数将被执行,可以在这里进行刷新视图的操作。
当执行搜索时,父组件中的searchResults
将被更新,同时触发子组件的刷新。子组件将根据最新的搜索结果重新渲染视图。
这样,当执行搜索并获得结果后,React将自动刷新嵌套组件的视图以显示最新的搜索结果。
领取专属 10元无门槛券
手把手带您无忧上云