在React中,異步渲染通常可以通過以下方式解決:
import React, { Suspense } from 'react';
const MyComponent = React.lazy(() => import('./MyComponent'));
function App() {
return (
<div>
<Suspense fallback={<div>Loading...</div>}>
<MyComponent />
</Suspense>
</div>
);
}
import React, { useState, useEffect } from 'react';
import ReactDOM from 'react-dom';
function MyComponent() {
const [data, setData] = useState(null);
useEffect(() => {
// 異步獲取數據
fetchData().then((response) => {
setData(response);
});
}, []);
if (!data) {
return null; // 渲染null,等待數據加載完成
}
return ReactDOM.createPortal(
<div>{data}</div>,
document.getElementById('portal-root')
);
}
function App() {
return (
<div>
{/* 在父組件中渲染一個占位符 */}
<div>Loading...</div>
<div id="portal-root"></div>
</div>
);
}
這些方法可以幫助您解決React中的異步渲染問題。請根據您的具體需求選擇適合您的方法。