【发布时间】:2021-03-23 00:06:17
【问题描述】:
我正在处理一个与播放列表有关的项目,所以我想要执行的是每当单击播放列表中的一首歌曲时,都应该查看附加到歌曲的图像。 所以,我的代码是这样的......
const Component = () => {
const value = useContext(DataContext);
const [data, setData] = useState(null);
const [currentData, setCurrentData] = useState(null);
useEffect(() => {
const url =
"https://52-90-82-235.maverickmaven.com/geotourdata/json.cfm?h=-107,37,s,en,3A771765";
const currentValue = value;
axios({
method: "get",
url,
responseType: "stream",
}).then((response) => {
let features = response.data.features.filter((elem) => {
return elem.type === "Feature";
});
setData(features);
const currentDatafile = data?.filter((data) => {
return data?.assets[0].audio === value;
});
setCurrentData(currentDatafile);
});
}, [setCurrentData]);
};
所以,这段代码的作用是它返回包含图片的数组,但问题是它只过滤一次,即使我点击另一首歌,它也会重复返回相同的值,我需要它来过滤每一个我点击歌曲的时间(即执行该功能)。
我尝试同时过滤和映射,但没有奏效。或者我的语法写得不够好。
我需要帮助。
【问题讨论】:
-
当你
console.log()它时,features包含什么? -
它返回一个数组,其中包含我要循环的数据。
-
所以,我使用 setData(feature) 保存了数据值,因此我可以使用数据导航到数组中我想要的位置,但这次我想过滤它..跨度>
标签: javascript arrays reactjs dictionary filter