Javascript 如何使用react钩子中的函数获取值?
我试图使用React钩子从API获取数据并在浏览器中显示,因为我试图在状态数组上使用过滤器,所以无法获得输出 我对国家的定义如下:Javascript 如何使用react钩子中的函数获取值?,javascript,reactjs,frontend,Javascript,Reactjs,Frontend,我试图使用React钩子从API获取数据并在浏览器中显示,因为我试图在状态数组上使用过滤器,所以无法获得输出 我对国家的定义如下: const [selectedPerson, setselectedPerson] = useState(null); const [totalData, setTotalData] = useState([]); const [isfinalData, setIsfinalData] = useState(false); const [Ba
const [selectedPerson, setselectedPerson] = useState(null);
const [totalData, setTotalData] = useState([]);
const [isfinalData, setIsfinalData] = useState(false);
const [Bagmati, setBagmati] = useState([]);
const [Bagmatitotal, setBagmatitotal] = useState([]);
const [Bagdist, setBagdist] = useState([]);
以下是我的代码:
<select className="form-control" onChange={(e) => {
console.log(e.target.value);
let FinalDistrict = Bagmati.filter((item) => item.district ===
e.target.value)
console.log(FinalDistrict);
}} >
<option >Choose District</option>
{Bagdist.map((item, _id) => <option key={_id} value={item.id}>
{item.title_ne}</option>)}
</select>
{
console.log(如target.value);
让FinalDistrict=Bagmati.filter((项)=>item.district==
e、 目标(价值)
控制台日志(最终严格);
}} >
选择地区
{Bagdist.map((项目,_id)=>
{item.title_ne}}
下面是我的输出:我提供了值28,得到了空数组作为Bagmati数据的输出,如下所示
但在相同的代码中,如果我手动提供值28,则无法获得输出,如下所示:
以下是我给手动值的代码:
<select className="form-control" onChange={(e) => {
console.log("my value is >>", 28);
let FinalDistrict = Bagmati.filter((item) => item.district === 28)
setBagmati(FinalDistrict);
}} >
<option >Choose District</option>
{Bagdist.map((item, _id) => <option key={_id} value={item.id}>
{item.title_ne}</option>)}
</select>
{
log(“我的值是>>”,28);
让FinalDistrict=Bagmati.filter((项)=>item.district==28)
setBagmati(最终严格);
}} >
选择地区
{Bagdist.map((项目,_id)=>
{item.title_ne}}
我的输出是:
为什么会发生这种情况?可能的解决方案是什么?来自
输入的值是typestring
,当您通过严格的相等比较检查它时,=
,
它将返回false。
您可以使用Number(例如target.value)
将其转换为Number
:
Bagmati.filter(item => item.district === Number(e.target.value))
input
中的值是typestring
,当您通过严格的相等比较对其进行检查时,
它将返回false。
您可以使用Number(例如target.value)
将其转换为Number
:
Bagmati.filter(item => item.district === Number(e.target.value))
您是否尝试了parseInt(e.target.value)
而不仅仅是e.target.value
?您的e.target.value
是一个字符串,而项.district
是一个整数。您是否尝试了parseInt(e.target.value)
而不仅仅是e.target.value
?您的e.target.value
是一个字符串,而item.district
是一个整数。