Javascript 如何使用react钩子中的函数获取值?

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

我试图使用React钩子从API获取数据并在浏览器中显示,因为我试图在状态数组上使用过滤器,所以无法获得输出

我对国家的定义如下:

   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}}
我的输出是:


为什么会发生这种情况?可能的解决方案是什么?

来自
输入的值是type
string
,当您通过严格的相等比较检查它时,
=
, 它将返回false。 您可以使用
Number(例如target.value)
将其转换为
Number

Bagmati.filter(item => item.district === Number(e.target.value))

input
中的值是type
string
,当您通过严格的相等比较对其进行检查时, 它将返回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
是一个整数。