【发布时间】:2020-06-01 22:38:22
【问题描述】:
一开始可能听起来很混乱,但我得到了这个代码
const updateFav = (value, index) => {
const tempData = _.cloneDeep(listProyectos);
console.log(tempData);
tempData[index].fav = value;
setListProyectos(tempData);
};
const listaFavoritos = _.filter(listProyectos, item => item.fav);
const finalObject = listaFavoritos;//{[thisParam]:listaFavoritos};
我有一个平面列表,里面有一个包含多个项目的数组,还有一个下拉菜单,我在其中选择一个项目,根据 ID,它会匹配具有平面列表对象 ID 的项目,问题是,项目在平面列表将显示开关,updateFav 中的代码将保存开关中的值,整个想法是,每当我从平面列表中打开一个元素时,它都会将其保存在 ListProyectos 数组中。
_.filter 将删除所有不包含 fav: true 的元素
所以问题来了,每当我从下拉列表中更改项目并更改平面列表时,整个 listProyectos 数组都会被替换,我只看到我所做的最后一次更改。
这是下拉菜单的代码
<ModalDropdown
defaultValue={'Seleccionar'}
onSelect={async (index, value) =>
{
await ParametersBusiness.GetInstance().getProjectClients(value);
setListProyectos(DataManager.ResponseProjectClient);
}
}
options={DataManager.ListCliente}
/>
这里是平面列表
<FlatList
data={listProyectos}
renderItem={({item, index}) => (
图片显示实际问题是什么
好的,所以当我从该客户端打开该项目时,它会将项目保存到一个新对象,那里一切都很好,但是。
请注意,当我选择不同的客户端并切换另一个项目时,只会保存我切换的最后一个,而不是两个都保存
gif,我从不同的客户那里选择了许多项目
【问题讨论】:
-
为什么在下拉列表中调用 setListProyectos ?它不会替换整个数组吗?
-
最好的方法是什么?在不同的州?
-
好的,所以每次更改下拉菜单时都会获得新项目,并且希望所有不同选项中的项目都可用?
-
没错,这就是事情,下拉列表显示客户端,而平面列表显示与该特定客户端相关的项目,因此当我从客户端单击项目时,它会保存在新对象中,但是当我想从不同的客户添加一个新项目时,最新的项目将被这个新项目替换
-
好的,这就是我的理解,您有一个客户列表,它是一个下拉列表,当您更改时,您会根据该列表显示项目,您可以使用开关选择一些。在此之后我仍然没有得到这个问题:(
标签: javascript arrays react-native