Storybook: рдорд╛рди рдмрджрд▓рддреЗ рд╕рдордп рдиреЛрдЬрд╝ рдСрдмреНрдЬреЗрдХреНрдЯ UI рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 25 рдлрд╝рд░ре░ 2020  ┬╖  2рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: storybookjs/storybook

рдмрдЧ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ

рдЬрдм рдПрдХ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдмрджрд▓рдиреЗ object рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ @storybook/addon-knobs , рдпреВрдЖрдИ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдкреНрд░рдЬрдирди рдХрд░рдирд╛

  1. Addon-knobs рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ object рдмрдирд╛рдПрдБ
  2. npm run storybook
  3. рд╕реНрдЯреЛрд░реАрдмреБрдХ рдиреЙрдмреНрд╕ рдЯреИрдм рдореЗрдВ object рдорд╛рди рдмрджрд▓реЗрдВ
  4. рдиреЛрдЯ object рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ

рдЕрдкреЗрдХреНрд╖рд┐рддреН рд╡реНрдпрд╡рд╣рд╛рд░

object рдорд╛рди рдиреЙрдм рдХреЗ рдЧрд╛рдпрдм рд╣реЛрдиреЗ рдХреЗ рдмрд┐рдирд╛ рд╕реНрдЯреЛрд░реАрдмреБрдХ рдпреВрдЖрдИ рдХреЗ рднреАрддрд░ рд╕реЗ рд╕рдВрдкрд╛рджрди рдпреЛрдЧреНрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ

storybook-knobs-object-bug

рдХреЛрдб рдХреЗ рдЯреБрдХрдбрд╝реЗ

рдпрд╣рд╛рдБ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдЙрджрд╛рд╣рд░рдг: https://github.com/benjarwar/storybook-knobs-object-test

  1. рд░реЗрдкреЛ рдХрд╛ рдХреНрд▓реЛрди
  2. npm i
  3. npm run storybook

рдкреНрд░рдгрд╛рд▓реА:

Environment Info:

  System:
    OS: macOS Mojave 10.14.6
    CPU: (12) x64 Intel(R) Core(TM) i7-8850H CPU @ 2.60GHz
  Binaries:
    Node: 8.15.1 - ~/.nvm/versions/node/v8.15.1/bin/node
    Yarn: 1.21.1 - ~/.nvm/versions/node/v8.15.1/bin/yarn
    npm: 6.13.7 - ~/.nvm/versions/node/v8.15.1/bin/npm
  Browsers:
    Chrome: 79.0.3945.130
    Firefox: 72.0.1
    Safari: 13.0.5
  npmPackages:
    @storybook/addon-actions: ^5.3.14 => 5.3.14 
    @storybook/addon-knobs: ^5.3.14 => 5.3.14 
    @storybook/addon-links: ^5.3.14 => 5.3.14 
    @storybook/addons: ^5.3.14 => 5.3.14 
    @storybook/react: ^5.3.14 => 5.3.14 
knobs question / support

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдпрд╣рд╛рдБ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдХрд╣рд╛рдиреА рд╕рдорд╛рд░реЛрд╣ рдХреЗ рдЕрдВрджрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдиреЙрдм рдирд╣реАрдВ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдмрджрд▓рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рдкреВрд░рд╛ рд╕реЗрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:

export const Ctas = () => {

  const value = object(label, defaultValue);

  return (
    <div>
      <div>
        <h3>CTA</h3>
        <Cta href="#primary-cta" type="Primary">
          {text("Primary CTA Label", "Primary CTA")}
          {value.foo}
        </Cta>
      </div>
    </div>
  );
};

рд╕рднреА 2 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдпрд╣рд╛рдБ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдХрд╣рд╛рдиреА рд╕рдорд╛рд░реЛрд╣ рдХреЗ рдЕрдВрджрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдиреЙрдм рдирд╣реАрдВ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдмрджрд▓рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рдкреВрд░рд╛ рд╕реЗрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:

export const Ctas = () => {

  const value = object(label, defaultValue);

  return (
    <div>
      <div>
        <h3>CTA</h3>
        <Cta href="#primary-cta" type="Primary">
          {text("Primary CTA Label", "Primary CTA")}
          {value.foo}
        </Cta>
      </div>
    </div>
  );
};

рдЖрд╣, рдзрдиреНрдпрд╡рд╛рдж @jonspalmerред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЪрд╛рд▓ рдЪрд▓реА рдЧрдИ, рдФрд░ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

arunoda picture arunoda  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

MrOrz picture MrOrz  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

shilman picture shilman  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Jonovono picture Jonovono  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

alexanbj picture alexanbj  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ