所以我最近更新了我的图像滑块以使用反应钩子,现在事情已经坏了,我不知道为什么。
当我单击上一个或下一个时,我希望滑块更改为具有正确索引的数组,但没有任何反应。我可以看到索引发生了变化,但我不明白为什么它不会更改为新数组。现在它总是在索引为 0 的数组上。
我尝试了什么:
从 sortIntoArray 中删除数组索引并直接在 map 函数中使用它。作为数字和字符串。
由此:
setImages(currenState => ({ ...currenState,
posters: result[0]
}));
let poster = posters.map((item, index) => (<img src={item} alt="poster" style={style.poster}
key={index}/>));
对此
setImages(currenState => ({...currenState,
posters: result
}));
let poster = posters[1].map((item, index) => (<img src={item} alt="poster" style={style.poster} key={index} /> ));
并且
let poster = posters["1"].map((item, index) => (<img src={item} alt="poster" style={style.poster} key={index} />));
但如果我这样做,我会收到此错误:TypeError: Cannot read property 'map' of undefined。这在我将组件从类组件更改为使用钩子之前有效。
我尝试向 sortIntoArray 添加参数并直接从 nextSlide 和 prevSlide 调用它。
我在这里创建了一个沙箱: https ://codesandbox.io/s/ancient-firefly-wzxi0?file=/src/Slider.js
跃然一笑
相关分类