react-redux - 有条件地连接组件时“对象作为 React 子项无效”Redux 错误?
问题描述
USE_MOCK_PROPS
仅当环境变量设置为 false时,我才尝试使用 Redux 加载组件。如果是true
这样,我将在没有 Redux 的情况下渲染组件,而是使用一些模拟道具。
import React from "react";
import Page from "./page";
import { connect } from "react-redux";
const { USE_MOCK_PROPS } = process.env;
const mockProps = {
foo: 'bar'
}
export default function() {
if (USE_MOCK_PROPS) {
return <Page {...mockProps} />;
}
const mapStateToProps = state => {
return {
state
};
};
return connect(mapStateToProps)(Page);
}
非 Redux 部分工作正常,但是在尝试使用 Redux 时出现此错误:
对象作为 React 子对象无效(发现:对象与键 {$$typeof, type, compare, WrappedComponent, displayName})。如果您打算渲染一组子项,请改用数组。
解决方案
import React from "react";
import Page from "./page";
import { connect } from "react-redux";
const { USE_MOCK_PROPS } = process.env;
const mockProps = {
foo: 'bar'
}
function mockedComponent() {
return <Page {...mockProps} />;
}
function connectedComponent() {
const mapStateToProps = state => {
return {
state
};
};
return connect(mapStateToProps)(Page)
}
export default USE_MOCK_PROPS ? mockedComponent : connectedComponent()
推荐阅读
- mysql - 如何排除同时满足两个条件的记录?
- r - 是否可以在将鼠标悬停在标题上时显示附加信息?
- angular - 延迟加载 Angular 组件的 ng-content
- wordpress - Wordpress 帖子数组仅包含对主页的引用
- c# - 如何为post请求格式化json
- reactjs - 在 React 中避免渲染警告
- c# - 获取多个代码,用'|'连接它们 分隔,从一个 id
- c - 在 C 中正确使用常量
- php - 用户提交类似shopify的表单后如何立即创建子域?
- javascript - Leaflet + Polymer 2 使用扭曲的瓷砖加载地图,但适用于非聚合物代码