WithStore:无法读取未定义的属性“状态”(纯反应式轮播)

时间:2019-05-08 11:33:21

标签: javascript reactjs carousel

我使用pure-react-carousel库,并尝试通过我的Button的onClick方法导航到特定的幻灯片。

请向我解释如何使用setStoreState,因为我试图自己做(如文档中所写),而整个使用它的页面都是不可见的。我尝试使用this.props.carouselStore.setStoreState({ currentSlide: 2 })

当我添加带有store的导出时,我的页面不可见。然后出现以下错误。

Error is Uncaught TypeError: Cannot read property 'state' of undefined
my export
    export default WithStore(MyComponent, state => ({
        currentSlide: state.currentSlide,
      }));

2 个答案:

答案 0 :(得分:0)

不需要括号。试试这个:

export default WithStore(MyComponent, state => {
    currentSlide: state.currentSlide,
  });

答案 1 :(得分:0)

我实际上是Pure React Carousel的作者。

WithStore()仅在它是<CarouselProvider />的子对象

时有效

WithStore访问React的上下文API。 CarouselProvider创建上下文。创建上下文时,React仅将上下文传递给创建该上下文的组件的子组件。

因此,在此伪代码示例中使用WithStore会给您带来错误。

<YourComponentThatUsesTheWithStoreHOC />
<CarouselProvider>
  // all your buttons, slides, dots, etc...
</CarouselProvider>

这也会给你带来错误。

<CarouselProvider>
  // all your buttons, slides, dots, etc...
</CarouselProvider>
<YourComponentThatUsesTheWithStoreHOC />

此伪代码示例将起作用

<CarouselProvider>
  // all your buttons, slides, dots, etc...
  <YourComponentThatUsesTheWithStoreHOC />
</CarouselProvider>