微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我想通过mobx的操作更改输入焦点

如何解决我想通过mobx的操作更改输入焦点

我想更改输入焦点。

class Store {
  flag=false;
  changeFocus(){
    this.flag = true;
  }
}

const CallAction = ()=>{
  const {store} = useStore();
  return <div onClick={()=> store.changeFocus(); }>call</div>
}

const Input = ()=>{
  const ref = useRef();
  const {store} = useStore();
  useEffect(()=>{
    if(store.flag){
      ref.current.focus()
    }
  },[store.flag])

  return <input ref={ref} type="text" />
}

但是,此代码在iOS中不起作用。
因为它需要在用户操作事件中调用

它可以autorun()

autorun(()=>{
  if(store.flag){
    ref.current.focus();
  }
})

这是正确的吗?
我想知道不同的地方。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。