react Provider如何使用,问题详细如下。

我把antd Modal封装成了函数调用的方式

interface NewModalType extends ModalType {
  content: ReactNode
}

Moadl.show(params: NewModalType)

我再调用时给content传入了另一个react组件,结果报错:

Error: could not find react-redux context value; please ensure the component is wrapped in a <Provider>

根据错误提示给show方法中<Modal />包了一层<Provider store={store}></Provider>

const store = createStore(() => {});

image

现在有一个问题是:ExecutionPlan.tsx文件中的getTemplateDetails方法被调用了,但是dispatch这个请求却没发出去,感觉这行代码没被执行,我在timingPlan
这个model中给getTimingPlanDetails方法打了断点,发现没执行。据我推断是将这个模态框组件封装后拿不到store导致的

我得问题是: 为什么会这样?该怎么处理?粗体或者说我这样封装是否合理,烦请给出解决方案.

阅读 3.9k
1 个回答

试试这样呢?

interface NewModalType extends ModalType {
  content: () => ReactNode
}

Moadl.show(params: NewModalType);

// FwModal.show
{params.content} --- > <param.content />

还是有点问题, 这样会更好点?

interface NewModalType<P> extends ModalType {
  Component: React.Component<P, any>,
  props: P
}
// FwModal.show
<param.Component {...param.props} />
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题