#reactjs #state
#reactjs #состояние
Вопрос:
У меня есть приложение react, и для отображения слайдера фотографий я установил tiny-slider-react
пакет, я установил его и настроил, он работает нормально, пока я не попытаюсь что-то сделать с состоянием, даже когда я пытаюсь сделать что-то подобное:
const [count, setCount] = useState(0)
useEffect(() => {
setCount(23)
},
[])
эту ошибку я получаю каждый раз
я не могу аннулировать использование состояния. Пожалуйста, как я могу выяснить, что происходит, и как я могу это решить?
UPD:
<BackgroundLayer theme="lightPink2">
<PageContent paddingTop marginTop>
<Chapter title={title} description={description} className="logos" />
<div className="is-mobile is-hidden-desktop is-hidden-tablet">
<TinySlider settings={settings} onTouchMove={(event) => setIndex(event.index)}>
{renderLogos(logos, "slider-padding", "slider__image")}
</TinySlider>
<div className="squares">
{aaaaaaa.map(a => (
<div key={guuid()} className={a.val} />
))}
</div>
</div>
</PageContent>
</BackgroundLayer>
Настройки UDP2:
const settings = {
nav: false,
mouseDrag: true,
controls: false,
loop: false,
}
UPD3: Вот как выглядит метод RenderLogos
const renderLogos = (logos, firstClass, secondClass) => {
return (
<>
{logos.map(s => (
<div key={guuid()} className={firstClass}>
{s.map(({ logo: { title, file: { url } } }) => (
<Logo
url={url}
title={title}
key={guuid()}
styleClass={secondClass}
/>
))}
</div>
))}
</>
)
}
Комментарии:
1. можете ли вы показать нам код, в котором вы используете tiny-slider-react?
2. @tudor.gergely готово
3. что такое настройки? а что такое renderLogos? можете ли вы добавить код и для них?
4. @tudor.gergely добавил UDP 2
5. как насчет renderLogos? как это выглядит?
Ответ №1:
Проблема в том, что вы рендерите React.Фрагмент (1 элемент), в то время как библиотека предполагает, что вы будете отображать несколько элементов как дочерние для TinySlider.
Попробуйте изменить renderLogos на это:
const renderLogos = (logos, firstClass, secondClass) => {
// render a list directly, not a list inside a fragment
return logos.map((s) => (
<div key={guuid()} className={firstClass}>
{s.map(({ logo: { title, file: { url } } }) => (
<Logo url={url} title={title} key={guuid()} styleClass={secondClass} />
))}
</div>
));
};