当它们在映射函数React内时,如何获取onChange的输入值



我试图在React中获得选择的值,但我得到空值。

<select value={predmet} onChange={(e) => setPredmet(e.target.value)}  id="post-name" name="predmet" >
{listaPredmeta.map(({ label, value }) => (
<option  id={value} value={value}>
{label}
</option >
))}
</select>

我不知道为什么,我猜它和map函数有关。

额外的代码。getData()函数在主组件函数中。

const [listaPredmeta, setlistaPredmeta] =useState([]);
function getData() {
const data = {
IdUniverziteta: parseInt(UserProfile.getUser("uni"), 10),
IdSmera: parseInt(UserProfile.getUser("smer"), 10)
};
const url3 = "https://localhost:44357/api/Fin/Predmet";
axios
.post(url3, data)
.then((result) => {
const predmeti= [];
function predmetSet(item){
const uniData2 = item.split("_");
predmeti.push({
label: uniData2[1],
value: uniData2[0]
})
}
const predmetData = result.data.split(";");
predmetData.forEach(predmetSet);
setlistaPredmeta(predmeti);
});
}
useEffect(() => {
getData();
// eslint-disable-next-line react-hooks/exhaustive-deps
}, []);

是啊,所以…问题出在缺省值上。我上面发布的代码工作完美,但它本身没有默认值。所以我做了一些不那么优雅的事情,但它奏效了。

const url3 = "https://localhost:44357/api/Fin/Predmet";
axios
.post(url3, data)
.then((result) => {
const predmeti= [];
function predmetSet(item){
const uniData2 = item.split("_");
predmeti.push({
label: uniData2[1],
value: uniData2[0]
})
}
const predmetData = result.data.split(";");
predmetData.forEach(predmetSet);
setlistaPredmeta(predmeti);
});
setPredmet(1); // I SET DEFAULT VALUE IN THIS LINE

最新更新