【问题标题】:Redux-Form: setting "component" prop as "React.DOM.input" yields errorRedux-Form:将“component”道具设置为“React.DOM.input”会产生错误
【发布时间】:2018-01-14 23:35:41
【问题描述】:

我正在使用 redux-form 在我的 react-redux 应用程序中创建一个非常简单的输入表单。我正在关注 redux-form 页面的示例,但它给了我一个错误。错误的根源来自尝试将component 属性设置为React.DOM.input。它抛出这个错误:

TypeError: _react2.default.DOM is undefined

但是,如果我将字符串 'input' 传递给 component 属性,它可以正常工作,并且我可以在我的 redux 开发工具中看到更改后的状态。我只是真的不确定我从哪里得到将它作为字符串的想法,现在我超级好奇????。

let SubsForm = ({ handleSubmit, availScripts }) => {
    const subs = availScripts.map(script =>
        [
            <label htmlFor={script}>{script}</label>,
            <Field key={script} component={React.DOM.input} type="checkbox" name={script} />,
            <br />,            
        ]
    );

    return [
        <form>
            {subs}
        </form>
    ];
};

谢谢

【问题讨论】:

    标签: reactjs redux react-redux redux-form


    【解决方案1】:

    import ReactDOM from "react-dom"React.DOM 之间存在差异。

    "react-dom" 包是您将 React 组件渲染到 HTML 页面中所需要的。

    同时,React.DOM 是一组用于在渲染方法中创建虚拟 DOM 元素的工厂函数。它一直是 moved out into a separate react-dom-factories package,并且从 React 16 开始不再是主要 React 包的一部分。

    React.createElement() 将 React 组件类型或字符串 DOM HTML 元素名称作为其第一个参数, . React.DOM 工厂函数稍微结束了这个过程。所以,这些是相同的:

    React.createElement("input", {name : "myInput"});
    React.DOM.input({name : "myInput"})
    

    【讨论】:

      【解决方案2】:

      尝试导入 react 组件。

       import React from "react";
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-01
        • 2012-11-11
        • 2018-08-25
        • 1970-01-01
        • 2021-03-04
        相关资源
        最近更新 更多