Pass props to stories from decorators
See original GitHub issueHi, guys!
I have updated storybook from 1.17.0 to 1.41.0 today. I found that some of my components doesn’t work.
Early (in 1.17.0) one piece of code was https://github.com/kadirahq/react-storybook/blob/a6a6458385a58611984e8db8bd96ced7038661c5/src/client/client_api.js#L24
And it was beautiful, because I did something like this:
import React, { Component } from 'react';
import { storiesOf, action } from '@kadira/storybook';
class RadioWrapper extends Component {
state = {
value: '1',
}
onChange = ({currentTarget: {value}}) => {
action('change radio')(value);
this.setState({value});
}
render() {
return (
<div style={{width: '500px', padding: '20px'}}>
{this.props.child({
value: this.state.value,
onChange: this.onChange,
})}
</div>
);
}
}
storiesOf('common.radio', module)
.addDecorator(getRadio => (
<RadioWrapper child={getRadio} />
))
.add('Default', ({value, onChange}) => (
<div>
<div className="radio">
<input
type="radio"
id="radio"
name="radio"
value="1"
checked={value === '1'}
className="radio__input"
onChange={onChange}
/>
<label className="radio__label" htmlFor="radio">
Radio label 1
</label>
</div>
<div className="radio">
<input
type="radio"
id="radio_2"
name="radio"
value="2"
checked={value === '2'}
className="radio__input"
onChange={onChange}
/>
<label className="radio__label" htmlFor="radio_2">
Radio label 2
</label>
</div>
</div>
))
.add('Disabled', ({value, onChange}) => (
<div>
<div className="radio">
<input
type="radio"
id="radio"
value="1"
checked={value === '1'}
className="radio__input"
onChange={onChange}
disabled
/>
<label className="radio__label" htmlFor="radio">
Radio label 1
</label>
</div>
<div className="radio">
<input
type="radio"
id="radio_2"
value="2"
checked={value === '2'}
className="radio__input"
onChange={onChange}
disabled
/>
<label className="radio__label" htmlFor="radio_2">
Radio label 2
</label>
</div>
</div>
));
Currently this piece of code was changed. https://github.com/kadirahq/react-storybook/blob/master/src/client/preview/client_api.js#L60 I can’t do this anymore. But I want to pull down props into examples from Decorators. How can I do that now?
Issue Analytics
- State:
- Created 7 years ago
- Reactions:5
- Comments:18 (7 by maintainers)
Top Results From Across the Web
Storybook 6 decorator pass props to story not working
I want to have the option to pass state to my stories using state and setState props. This is how I defined my...
Read more >Passing props into stories through decorators no longer ...
Describe the bug Prior to version 6.3 of Storybook, when I create a decorator, I'm able to pass props into it like so...
Read more >Decorators - Storybook - JS.ORG
A decorator is a way to wrap a story in extra “rendering” functionality. Many addons define decorators to augment your stories with extra...
Read more >Controlling global decorators via Storybook `args` and ...
The story config just knows it can pass a pure function to modifyArgs , and the Base decorator decides what do do with...
Read more >Storybook. Decorators and Context in examples - Medium
To access Storybook's context we can pass “context” prop as a second argument: decorators: [ (Story, context) => ( // ... <Story/>
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
common guys… I mean seriously… a simple question and no answer at all. Not even a hint.
In V5 this is supported:
Here’s the full storyshot of this story:
Here’s a somewhat realisting example: