rescript-storybook icon indicating copy to clipboard operation
rescript-storybook copied to clipboard

Not able to load up a ReasonReact component

Open johnhaley81 opened this issue 5 years ago • 3 comments

👋

I'm trying to load this up into our workspace and as long as I use the built-in React DOM elements everything is good. But when I try to load up a ReasonReact component I get the following message:

Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.
// CustomDiv.re
[@react.component]
let make = (~children) => <div> children->React.string </div>;
// CustomDivStories.re
open BsStorybook.Story;

let _module = [%bs.raw "module"];

storiesOf("CustomDiv Story", _module)
->add("Chapter I", () => <CustomDiv "Hello bs-storybook!" </CustomDiv>);

What am I doing wrong?

johnhaley81 avatar May 22 '20 22:05 johnhaley81

Hey @johnhaley81

Could you share a repo where I can look into it?

Without digging much, The issue comes from importing a component that it's undefined instead of a fn. This usually happens when you have a bug in your import/export code. In this case, since it's compiled could you take a look at *.bs.js? (Those are always right, they return properly components and functions).

You can try to eliminate the error, inlining your component inside the story?

davesnx avatar May 23 '20 13:05 davesnx

Hey @johnhaley81, did you solve the problem? Is there something that can we do?

davesnx avatar Sep 12 '20 21:09 davesnx

Hey @davesnx, sorry for the late response, I'll try to get an example for you next week!

johnhaley81 avatar Sep 25 '20 16:09 johnhaley81