I have a function that returns JSX as shown below:
function struct(locals) {
return (
<View style={fieldsetStyle}>
{label}
{error}
{rows}
</View>
);
}
label, error, and rows are functions that also return JSX.
I call this function within the render method of an ES6 class component
class Component extends React.Component {
render() {
const locals = this.getLocals();
return struct(locals);
}
}
When I run the code, I get error
Element type is invalid: expected a string (for built-in components) or a
class/function (for composite components) but got: object. Check the render
method of Struct
How can I get the result from struct function to render as return value of Component class render?
You are returning a react component, not a react element. The difference is an element describes how to create the component, where as the component is the instanced class. You need to return React.createElement(Struct);, or return <Struct/>. Also, your locals variable will actually be a props object. So your code should look like this:
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}/>;
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With