gpt4 book ai didi

reactjs - react如何根据屏幕宽度进行条件渲染?

转载 作者:行者123 更新时间:2023-12-05 00:56:06 24 4
gpt4 key购买 nike

有一个问题,我不知道如何在技术上正确地实现该组件。我想做一个元素的条件渲染取决于设备屏幕。示例:如果屏幕小于 700 像素,则我得出一个结论,如果大于则第二个

if(window.innerWidth > 700) {
return(
<Content>
1
</Content>)
};
return (
<Content>
2
</Content>)

我使用 react、next js 和 typeScript 技术

如何做到这一点?

最佳答案

在组件中创建宽度状态,并在窗口调整大小事件时更新状态,如下所示:

const App = () => {
const [width, setWidth] = React.useState(window.innerWidth);
const breakpoint = 700;
React.useEffect(() => {
const handleResizeWindow = () => setWidth(window.innerWidth);
// subscribe to window resize event "onComponentDidMount"
window.addEventListener("resize", handleResizeWindow);
return () => {
// unsubscribe "onComponentDestroy"
window.removeEventListener("resize", handleResizeWindow);
};
}, []);
if (width > breakpoint) {
return (
<div>
<h3>Component 1</h3>
<p>Current width is {width} px</p>
</div>
);
}
return (
<div>
<h3>Component 2</h3>
<p>Current width is {width} px</p>
</div>
);
}


class Root extends React.Component {
render() {
return (
<App/>
);
}
}

ReactDOM.render(<Root />, document.getElementById('root'));
<script src="https://unpkg.com/react@16/umd/react.development.js" crossorigin></script>
<script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js" crossorigin></script>
<div id="root">
</div>

关于reactjs - react如何根据屏幕宽度进行条件渲染?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62954765/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com