Как установить фокус для ввода в Storybook Story - PullRequest
0 голосов
/ 18 января 2020

Я создаю компонент реакции сборника рассказов и пытаюсь сфокусировать внимание на материале истории. Я не хочу ставить это на каждой истории. Пока у меня есть:

const InputComponent = React.forwardRef(({
  inputName,
  value,
}, myRef) => {

  return (
    <input
      name={inputName}
      ref={myRef}
      type='text'
    />
  )
}  

stories.add(
  "Input field - Active",
  () => (
    <InputComponent
      inputName='Name'
  )
);

Я не знаю, нужно ли мне использовать реф или нет. Я попытался использовать автофокус и установить его в качестве опоры, но это не сработало. Любая помощь приветствуется.

1 Ответ

0 голосов
/ 20 января 2020

Я пропустил что-то маленькое. У меня был опора в неправильном месте. Это должно было быть в объекте с inputName и значением. Как только я переместился туда, я смог использовать ловушки реагирования useRef и useEffect на историю, чтобы сфокусировать ввод следующим образом:

stories.add(
  "Input field - Active",
  () => React.createElement(() => {
    const newRef = useRef(null);
    useEffect(() => {
      newRef.current.focus();
    });
    return ( 
    <InputComponent
      inputName='Name'
      myRef={newRef}
    />
    )
})
);
...