@storybook/react
v3.2.4@storybook/addon-info
v3.2.4рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдпрд╣ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐
storiesOf('Button').addWithInfo(
'simple usage (custom propTables)',
`
This is the basic usage with the button with providing a label to show the text.
Since, the story source code is wrapped inside a div, info addon can't figure out propTypes on it's own.
So, we need to give relevant React component classes manually using \`propTypes\` option as shown below:
~~~js
storiesOf('Button')
.addWithInfo(
'simple usage (custom propTables)',
<info>,
<storyFn>,
{ inline: true, propTables: [Button]}
);
~~~
`,
() => (
<div>
<Button label="The Button" onClick={action('onClick')} />
<br />
</div>
),
{ inline: true, propTables: [Button] }
);
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ propTypes
рдмреИрдХрдЯрд┐рдХреНрд╕ рдореЗрдВ рд╕рдВрд▓рдЧреНрди рд╣реИред
propTypes
рд╢рдмреНрдж рдореЛрдиреЛрд╕реНрдкреЗрд╕реНрдб рдлрд╝реЙрдиреНрдЯ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдпрд╣ рдЬрд┐рд╕ рд╡рд╛рдХреНрдп рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред
рд╢рдмреНрдж propTypes
рдПрдХ рдЦрд╛рд▓реА <pre><code></code></pre>
рддрддреНрд╡ рдмрди рдЬрд╛рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
<Code>
, рдЬрд┐рд╕реЗ <code>
рдЕрдВрджрд░ <pre>
рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рдмреНрд▓реЙрдХ рддрддреНрд╡ рд╣реИ рдЬреЛ рд╡рд╛рдХреНрдп рдХреЛ рджреЛ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддрд╛ рд╣реИред<Code>
this.props.code
рд╕реЗ рдЯреЗрдХреНрд╕реНрдЯ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЯреЗрдХреНрд╕реНрдЯ this.props.children
ред@MrOrz рдореБрдЭреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рднреА рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдФрд░ рдЗрд╕ рдкреАрдЖрд░ #1501 рдореЗрдВ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ
рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!
рдпрд╣ рд╕реБрдирдХрд░ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧрд╛!
рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╕ marksyConf
рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдкреАрдЖрд░ рдкрд░ рдХреЛрдИ рдЬрд▓реНрджреА рдирд╣реАрдВ рд╣реИ, рдЕрдкрдирд╛ рд╕рдордп рд▓реЗрдВ;)
рдЙрджрд╛:
import React from 'react';
import { configure } from '@storybook/react';
import { setDefaults } from '@storybook/addon-info';
function Code({ children }) {
return <code>{children}</code>;
}
function loadStories() {/* loading stories here */}
setDefaults({ marksyConf: { code: Code } });
configure(loadStories, module);
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ code
рдЗрдирд▓рд╛рдЗрди рдФрд░ рдмреНрд▓реЙрдХ рдХреЛрдб рдЕрдиреБрднрд╛рдЧреЛрдВ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрдирд▓рд╛рдЗрди рдХреЛрдб рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ props.children
рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рд▓реЗрдХрд┐рди рдХреЛрдб рдмреНрд▓реЙрдХ рдХреЗ рд▓рд┐рдП props.code
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐
code
рдЗрдирд▓рд╛рдЗрди рдФрд░ рдмреНрд▓реЙрдХ рдХреЛрдб рдЕрдиреБрднрд╛рдЧреЛрдВ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИредрдЗрдирд▓рд╛рдЗрди рдХреЛрдб рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ
props.children
рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рд▓реЗрдХрд┐рди рдХреЛрдб рдмреНрд▓реЙрдХ рдХреЗ рд▓рд┐рдПprops.code