【发布时间】:2017-05-01 06:09:03
【问题描述】:
我无法弄清楚如何将 JSX 传递到我的 redux 状态,即用于全局使用的模态组件,并且其 redux 状态的一个参数是 content 这样的内容可以更新以包含 JSX 代码。
目前我正在让它呈现正确的内容,但似乎没有正确调用函数,并且我也收到以下错误:
invariant.js:38 未捕获错误:对象作为 React 子对象无效 (找到:带有键的对象 {dispatchConfig,_targetInst, isDefaultPrevented, isPropagationStopped, _dispatchListeners, _dispatchInstances、nativeEvent、类型、目标、currentTarget、eventPhase、气泡、可取消、时间戳、defaultPrevented、 isTrusted、查看、详细信息、screenX、screenY、clientX、clientY、ctrlKey、 shiftKey,altKey,metaKey,getModifierState,按钮,按钮, 相关目标,pageX,pageY})。如果你打算渲染一个集合 孩子,使用数组代替或使用包装对象 来自 React 附加组件的 createFragment(object)。检查渲染方法
styled.div.
有很多以下错误:
warning.js:36 警告:此合成事件被重复使用以提高性能 原因。如果你看到这个,你正在访问该属性
nativeEvent发布/无效的合成事件。这设置为 空值。如果您必须保留原始合成事件,请使用 event.persist()。请参阅https://fbme(replaced 这不允许链接到 fb)/react-event-pooling 了解更多信息 信息。
示例实现:
从页面调用的函数以显示模式并向其添加内容
onToggleModal = () => {
this.props.modalToggle(
(<TopUp account={getSession().accounts[0] || {}} />)
);
}
this.props.modalToggle 是这样的 redux 操作:
export const modalToggle = (content = '') => ({
type: MODAL_TOGGLE,
payload: content
});
然后我尝试在我的 Modal 容器中呈现这些内容:
return (
<div>{this.props.content}</div>
)
我将React 导入到我的reducer 中,希望能解决jsx 问题,但没有运气。似乎组件作为某种奇怪的对象传递给 reducer。
【问题讨论】:
-
如果您正在寻找带有模态的
redux模式,我强烈建议这种方法:stackoverflow.com/questions/35623656/… 我们目前在生产中使用它,它非常稳定。 -
@lux 看起来不错,但我在将函数作为道具传递时遇到了困难,有什么建议吗?
标签: javascript reactjs redux