reactjs - react组件提示框或者useState或者useEffect
问题描述
在反应组件中,我正在使用提示框从用户那里获取城市。一切正常,但提示框显示了两次。如果可以做到这一点,请帮助或帮助我使用 usestate 或 useeffect 钩子。或者我应该使用类组件。我正在寻找东方的方法.....我是新手。
非常感谢
import React from 'react'
const SearchArea = ({Country}) => {
var city = prompt("Please enter your city")
return (
<div>
{countires.map(c => {
if (c.area == city) {
return (
<div>{c.area}</div>
)
}
})}
<div>
)
}
export default SearchArea
解决方案
使用 'useState' 和 'useEffect',您可以实现相同的效果,如下所示:
import React from 'react'
const SearchArea = ({Country}) => {
const [city, setCity] = React.useState(null);
React.useEffect(() => {
const city = prompt("Please enter your city");
setCity(city);
}, [])
return (
<div>
{
countires.map(c => {
if (c.area == city) {
return (
<div>
{c.area}
</div>
)
}
})
}
<div>
)
}
export default SearchArea
推荐阅读
- flutter - Flutter:Intellij 确实没有显示设备(但在 Android 项目中没有问题)
- locust - 蝗虫:request_success.fire 没有做任何事情
- r - 由于添加了数字,所以图例只有一半可见
- javascript - 使用可选的 jQuerys UI 时如何获取选定项目的列表?
- javascript - 与数组字符串一起使用时,Javascript 归档不起作用
- pine-script - 在 TradingView 策略的 alert_message 中应用 {{plot("Name")}}
- c++ - 完成 bool 设置为 true 后 For 循环不停止
- security - 多授权人支持
- node.js - Hyperledger Fabric 如何通过 mspid 管理授权
- c++ - 为什么复制构造函数和复制赋值运算符调用“memcpy”,而移动ctor和移动赋值运算符调用“memmove”