рдХреНрдпрд╛ рдХрд╣рд╛рдиреА рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ/рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдмрд╛рд╣рд░реА рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛ рд▓рд╛рдиреЗ рдЬреИрд╕реЗ рдХреБрдЫ рдПрд╕рд┐рдВрдХ рдХрд╛рдо рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ?
рдЗрд╕ рддрд░рд╣ рдЕрдВрджрд░:
// inside src/stories/index.js
axios.get('http://api.someURLtogetdata.com')
.then(({ data }) => {
storiesOf('Data Viewer', module)
.add('Test', () => {
return <TestStory data={data} />;
})
});
рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ рднреА рдРрд╕рд╛ рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА:
const stories = storiesOf('Data Viewer', module)
axios.get('http://api.someURLtogetdata.com')
.then(({ data }) => {
stories.add('Test', () => {
return <TestStory data={data} />;
})
});
рд╕реНрдЯреЛрд░реАрдмреБрдХ рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рдХреБрдЫ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рд╕реБрдЭрд╛рд╡?
рдХреБрдЫ рдРрд╕рд╛ рд╕реБрдЭрд╛ рд╕рдХрддрд╛ рд╣реИ
class LoadData = extends React.Component {
state = {
data: null
}
componentDidMount() {
axios.get(this.props.url).then(data => this.setState({ data }))
}
render() {
return this.props.children(this.state.data)
}
}
storiesOf('DataViewer')
.add('test', () => (
<LoadData url="http://api.someURLtogetdata.com">
{data =>
<TestStory data={data} />
}
</LoadData>
))
рдЯрд┐рдк @einarlove рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!
рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЙрд╕реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддреА рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рд╣реИ: https://github.com/storybooks/react-storybook/issues/713
рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рдорд╣рд╕реВрд╕ рдХрд░рддреЗ рд╣реИрдВ?
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдкреАрдЖрдИ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛ (рдпрд╣ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ):
storiesOf('DataViewer')
.add('test', () => axios
.get('http://api.someURLtogetdata.com')
.then(({ data }) => <TestStory data={data} />)
)
рдореИрдВ рдЖрдкрдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕реБрдирдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛! рдЕрдЧрд░ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЬреЛ рд╕рдорд╛рдзрд╛рди рдЕрднреА рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рд╣реИ рд╡рд╣ рдЖрдкрдХреЗ рдпреВрдЬрд╝рдХреЗрд╕ рдХреЗ рд▓рд┐рдП рдареАрдХ рд╣реЛрдЧрд╛, рддреЛ рдЖрдЗрдП рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ: #713ред
рдпрджрд┐ рдЖрдк рдЕрд╕рд╣рдордд рд╣реИрдВ рдФрд░ рдПрдХ рдФрд░ рдПрдкреАрдЖрдИ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ!
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдХреБрдЫ рдРрд╕рд╛ рд╕реБрдЭрд╛ рд╕рдХрддрд╛ рд╣реИ