Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 始终将选定数据保留在新阵列中(React Native)_Javascript_Arrays_Reactjs_React Native - Fatal编程技术网

Javascript 始终将选定数据保留在新阵列中(React Native)

Javascript 始终将选定数据保留在新阵列中(React Native),javascript,arrays,reactjs,react-native,Javascript,Arrays,Reactjs,React Native,我需要帮助,因为我正在失去理智哈哈 我有一个主阵列产品(这只是一个示例): 我正在处理这个选择器组件。所以,我要做的是: 我有一个挑选员来挑选带有“颜色”的产品。。然后我有另一个选择过滤产品(只与颜色:31例)与他们的“原产地”,最后我想通过他们的“标签”过滤他们 事实上,我有3个选择器,3个函数来选择它们,它正在工作,但问题是我正在用setState擦除“displayProducts”的呈现。因此,当我选择了这3个选项后,我无法返回 例如,我选择“颜色:31”和“产地:397”以及“标签:3

我需要帮助,因为我正在失去理智哈哈

我有一个主阵列
产品
(这只是一个示例):

我正在处理这个选择器组件。所以,我要做的是: 我有一个挑选员来挑选带有“颜色”的产品。。然后我有另一个选择过滤产品(只与颜色:31例)与他们的“原产地”,最后我想通过他们的“标签”过滤他们

事实上,我有3个选择器,3个函数来选择它们,它正在工作,但问题是我正在用setState擦除“displayProducts”的呈现。因此,当我选择了这3个选项后,我无法返回

例如,我选择“颜色:31”和“产地:397”以及“标签:355”。。我不能回去告诉你:最后我想要“起源:395”,因为它已经不存在了,等等。。。一种“颜色”可以有不同的“标签、产地等”

我正在做类似的事情,但它只适用于一个选项,而不适用于多个选项,并且没有保留一个解决方案来再次查找我的过滤产品:

onChangeGetOrigin(originValue) {
    this.setState(() => ({
        activeOrigin: originValue,
        displayProducts: this.state.displayProducts.filter(product => product.origin == originValue)
    }));
}

有人能理解我说的话吗-您可以维护两个阵列。一个包含产品的完整列表,另一个是应用过滤器后的派生数组。您可以使用派生列表进行显示,使用原始数组进行选择。

别担心,您现在很沮丧,但您可以解决它。你能分享更多的代码吗?我对你的问题一无所知,但是你应该通过这个函数修改对
setState
函数的调用:
this.setState(state=>({activeOrigin:originValue,displayProducts:state.displayProducts.filter(product=>product.origin==originValue)})
onChangeGetOrigin(originValue) {
    this.setState(() => ({
        activeOrigin: originValue,
        displayProducts: this.state.displayProducts.filter(product => product.origin == originValue)
    }));
}