在ES6类React组件的render方法中使用时,React组件函数返回JSX会导致错误

汤姆·雅典

我有一个返回JSX的函数,如下所示:

  function struct(locals) { 
    return (
      <View style={fieldsetStyle}>
        {label}
        {error}
        {rows}
      </View>
    );
}
label, error, and rows are functions that also return JSX.

我在ES6类组件的render方法中调用此函数

class Component extends React.Component {
  render() {
    const locals = this.getLocals();

    return struct(locals); 
  }
}

当我运行代码时,出现错误

元素类型无效:需要一个字符串(对于内置组件)或一个类/函数(对于复合组件),但得到:对象。检查的渲染方法Struct

如何从struct函数获取结果以呈现为Component类render的返回值?

凯尔

您要返回的是react组件,而不是react元素。区别在于元素描述了如何创建组件,而组件是实例化类。您需要return React.createElement(Struct);return <Struct/>同样,您的locals变量实际上将是一个props对象。因此,您的代码应如下所示:

function struct({locals}) { 
    return (
      <View style={fieldsetStyle}>
        {label}
        {error}
        {rows}
      </View>
    );
}

class Component extends React.Component {
  render() {
    const locals = this.getLocals();

    return <Struct locals={locals}/>; 
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在React无状态组件中使用ES6映射函数

在react组件的render函数中使用变量

何时使用基于ES6类的React组件和功能性ES6 React组件?

React Router v4.2.2:在Route的组件prop中使用字符串而不是函数会导致错误

重构React组件的render方法会导致错误

将react组件用作子组件或从React组件的render函数中使用

如何处理React嵌套组件循环依赖关系?(使用es6类)

什么是将函数绑定到组件的不同方法 React es6

在 React 中使用 createElement 嵌套组件会产生错误

ES6 React JS方法日历组件

定义ES6 React组件的两种方法

React 组件 props 数组在组件内的函数中使用时会更新

Jest和Enzyme使用ES6 Arrow函数测试React组件

React.render返回什么?组件实例或组件类?

JSDoc用于ES6 React组件

React ES6中的子组件

ES6 React组件中的PureRenderMixin

如何编写扩展功能组件的ES6类React组件?

在render方法中使用承诺来渲染React组件

无法在React组件类中使用Arrow函数

React.js:在构造函数中使用类的组件

如何在React组件的返回函数中使用IIFE?

如何将React-alert与定义为ES6类的React组件一起使用

模块解析失败:es6 在 .JS 文件中使用 JSX 响应组件

组件的render方法是否应该具有返回类型React.ReactNode或JSX.Element?

如何在React组件中使用一类方法?

如何使用另一个组件使用的ES6在React JS中创建公共帮助器类?

在Angular组件中使用aria属性会导致错误

在React组件中使用函数属性的正确方法