Javascript React在控制台中显示值,但不呈现它们
我正试图根据另一个选择加载一个选择的选项。我从数组中提取数据(以后会有更多数据) 我的问题是无法渲染第二个选择。我正确过滤了数据,但没有添加选项。在代码的两个“console.log”中,您可以看到我在一旁进行了注释,结果显示在控制台中 知道我失败了什么吗?我是react的新手。如果代码非常糟糕,我道歉!欢迎任何帮助 另外,我不知道在这种情况下是否有什么不同,但我使用的是“蚂蚁设计”Javascript React在控制台中显示值,但不呈现它们,javascript,reactjs,antd,Javascript,Reactjs,Antd,我正试图根据另一个选择加载一个选择的选项。我从数组中提取数据(以后会有更多数据) 我的问题是无法渲染第二个选择。我正确过滤了数据,但没有添加选项。在代码的两个“console.log”中,您可以看到我在一旁进行了注释,结果显示在控制台中 知道我失败了什么吗?我是react的新手。如果代码非常糟糕,我道歉!欢迎任何帮助 另外,我不知道在这种情况下是否有什么不同,但我使用的是“蚂蚁设计” import React,{useState}来自“React”; 从“antd”导入{Row,Col,Form
import React,{useState}来自“React”;
从“antd”导入{Row,Col,Form,Select,Input};
导出默认功能SelectPetZone(道具){
const{publicationData,setPublicationData}=props;
const{Option}=Select;
常数arrayZones=[
{
部门名称:“蒙得维的亚”,
邻居:['Centro'、'Cordón'、'Flor de Maroñas'、'Manga']
},
{
部门名称:“Canelones”,
邻居:['Las Piedras'、'El Dorado'、'Progreso'、'La Paz']
}
];
常量选项部门=[];
const[optionsNeighborary,setoptionsNeighborary]=useState([]);
用于(阵列天线的常数项){
选项departments.push({item.departmentName});
}
常数=e=>{
//设置部门
setPublicationData({…publicationData,部门:e});
//负荷邻域
对于(数组的常数i){
如果(e==i.部门名称){
对于(i.邻域的常数j){
控制台日志(j);
setoptionsNeighborary(…optionsNeighborary,{j});
}
}
}
}
返回(
{optionsDepartments}
setPublicationData({…publicationData,邻域:e})值={publicationData.Neighborary}>
{optionsNeighborary}
)
}
在react中,我们有一个叫做
首先,
然后改变
const optionsNeighborhood = [];
for(const i of arrayZones) {
if(e === i.departmentName) {
for(const j of i.neighborhood) {
console.log(j); // ==> Print the correct data
optionsNeighborhood.push(j);
}
}
}
到
然后改变
const optionsNeighborhood = [];
for(const i of arrayZones) {
if(e === i.departmentName) {
for(const j of i.neighborhood) {
console.log(j); // ==> Print the correct data
optionsNeighborhood.push(j);
}
}
}
到
for(数组的常数i){
如果(e==i.部门名称){
对于(i.邻域的常数j){
console.log(j);//=>打印正确的数据
setoptionsNeighborary([…optionsNeighborary,j]);
}
}
}
很好!我明白了。有没有办法用useState“模拟”推送?它只添加数组的最后一项。我根据你的评论编辑了我的代码。你可以通过连接数组来模拟推送。我编辑了我的答案,将其包括在内:``setoptionsNeighborary([…optionsNeighborary,j]);```它将j和optionsNeighboratory添加到一起虽然我没有让它正常工作(选择继续只加载一项),但我会将答案标记为正确,因为最初的问题是没有呈现选项。我想我会尝试用一个过滤器和一个地图来代替FOR。谢谢你的帮助!编辑:因为我是Stackoverflow新手,所以我不能给它+1
for(const i of arrayZones) {
if(e === i.departmentName) {
for(const j of i.neighborhood) {
console.log(j); // ==> Print the correct data
optionsNeighborhood.push(j);
}
}
}