css - 如何从一个文本字段更改为另一个文本字段

标签 css reactjs

我有 4 个文本字段,用于输入发送到手机的 4 位代码。如果写入数字并且不带数字以外的任何内容,我如何自动更改到下一个字段 我附上一张图片和我的代码库 enter image description here

// flow
import React, { useRef } from 'react';
import { signup } from '../../assets/images';
import FormDiv from '../shared/Sign-in-div';
import ImageDiv from '../shared/Image-div';
import { Nunito32, Nunito20 } from '../shared/nunito/nunito';
import ImageContainer from '../shared/image-container';
import OtpField from '../shared/otp-field';
import PinkButton from '../shared/button-color-pink';

let [fieldOne, fieldTwo, fieldThree, fieldFour] = useRef(null);

const onChange = field => {
  field.focus();
};

const SignUpVerification = () => (
  <div style={{ display: 'flex' }}>
    <FormDiv style={{ textAlign: 'center' }}>
      <Nunito32
        style={{
          display: 'inline-block',
          textAlign: 'center',
          marginRight: 236,
          marginLeft: 200,
        }}
      >
        Verify your mobile number by entering the code we sent you
      </Nunito32>
      <div style={{ flexDirection: 'row' }}>
        <OtpField
          ref={input => {
            fieldOne = input;
          }}
          style={{ marginRight: 10.5 }}
          onChange={() => onChange(fieldTwo)}
        />
        <OtpField
          ref={input => {
            fieldTwo = input;
          }}
          onChange={() => onChange(fieldThree)}
          style={{ marginRight: 10.5 }}
        />
        <OtpField
          ref={input => {
            fieldThree = input;
          }}
          onChange={() => onChange(fieldFour)}
          style={{ marginRight: 10.5 }}
        />
        <OtpField
          ref={input => {
            fieldFour = input;
          }}
          style={{ marginRight: 10.5 }}
        />
      </div>

      <PinkButton style={{ marginTop: 75 }}>Continue</PinkButton>
      <Nunito20>Send again</Nunito20>
    </FormDiv>
    <ImageContainer>
      <ImageDiv bg={signup} src={signup} alt="logo" />
    </ImageContainer>
  </div>
);

export default SignUpVerification;

它现在给我 2 个错误,fieldOne 已创建但未使用,并且 × 错误:无效 Hook 调用。钩子(Hook)只能在函数组件的主体内部调用。这可能由于以下原因之一而发生:

最佳答案

当你改变状态时重新渲染怎么样?

关于css - 如何从一个文本字段更改为另一个文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59245038/

相关文章:

reactjs - 为什么 TypeScript 看不到嵌套值不能未定义?

CSS选择具有特定类的第一个元素

jquery - iframe显示时有滚动条 : inline-block is used

reactjs - TSLint 和 React 无状态组件命名(PascalCase 与 camelCase)

reactjs - 处理 ReactJS 中的屏幕方向变化

javascript - 包含来自 webpack 捆绑的 npm 包的 Assets

javascript - Flash 在 Android 浏览器解决方法中始终位于最前面?

javascript - 如何在 WYSIWYG 编辑器中设置 block 引号的样式

jquery - 仅限 iOS 上的圆形 div/按钮??? jQuery、ajax、CSS

javascript - React.js 获取 SVG 路径上的事件