更新輪播卡片內容
如果想要改變幻燈片項的內容,比如改變某個值的顯示切換,可以選擇在 key
中加入一些參數,或者開啟 isSlideItemMemo
模式,使用 useMemo deps
來判斷是否重新渲染
使用 Key Cache
Tip
這是 預設的的緩存模式,它會根據所有的 key值
來決定是 否重新生成 slideItem
,因為我們不想在 slide index
發生變化時重新生成 SlideItem
,但是又需要更新 SlideItem
const StateCarousel = () => {
const [activeId, setActiveId] = React.useState(0);
const myData = images.map(row => {
const isActive = row.id === activeId;
return <BearSlideImage
key={row.id}
imageUrl={row.image}
onClick={() => setActiveId(row.id)}
style={isActive ? {transition: 'filter .4s', filter: 'blur(4px)'}: undefined}
/>
});
return <BearCarousel
// ...ignore some
data={myData}
/>
}
使用 Memo Cache
如果你不想弄亂 Key
,你可以使用 useMemo
的 deps
import {BearSlideCard} from 'bear-react-carousel';
const StateCarousel = () => {
const [activeId, setActiveId] = React.useState(0);
const myData = () => images.map(row => {
const isActive = row.id === activeId;
return <BearSlideImage
key={row.id}
imageUrl={row.image}
onClick={() => setActiveId(row.id)}
style={isActive ? {transition: 'filter .4s', filter: 'blur(4px)'}: undefined}
/>;
}), [activeId]);
return <BearCarousel
// ...ignore some
data={myData}
isSlideItemMemo
/>
}
試試看點擊輪播項目?
important
如果您不希望滑動動作觸發 slideItem
的 onclick事件
,請將 onClick
放在 BearSlideCard
或 BearSlideImage
上