Почему inputRef в CurrencyTextField возвращает ошибку inputRef.current имеет значение null? - PullRequest
3 голосов
/ 18 июня 2020

Я пытаюсь сосредоточиться на втором «CurrentTextField» после того, как первое «CurrentTextField» изменит ваше значение, но вернет ошибку «inputRef.current is null»

import React, {useRef } from 'react';
import CurrencyTextField from "@unicef/material-ui-currency-textfield";

export default function Clientes() {
   let refInput = useRef(null)

   return(
      <div>
         <CurrencyTextField 
          onChange={(e) => refInput.current.focus()}
         />

         <CurrencyTextField 
          inputRef={refInput}
         />
      </div>
   )
}

Ответы [ 2 ]

1 голос
/ 18 июня 2020

ОБНОВЛЕНИЕ 2

Я снова проверил и увидел, что он использует компонент TextField из material-ui/core, который имеет свойство inputProps, так что это будет работать

  <CurrencyTextField inputProps={{ref:refInput}} />

ОБНОВЛЕНИЕ

Я только что проверил исходный код CurrencyTextField, и он не обрабатывает ссылки


Поскольку вы используете пользовательский компонент CurrencyTextField вы должны проверить, обрабатывает ли он ссылки, при использовании обычных тегов HTML вы должны использовать опору ref

export default function Clientes() {
   let refInput = useRef(null)

   return(
      <div>
         <CurrencyTextField 
          onChange={(e) => refInput.current.focus()}
         />

         <-- normal input will work -->
         <input  
          ref={refInput}
         />
      </div>
   )
}

Попробуйте сделать это, как если бы это был обычный тег HTML, чтобы увидеть если работает.

0 голосов
/ 18 июня 2020

Это выглядит странно. Я проверил документацию React и выглядит хорошо useRef React . Может быть, вы можете предоставить нам более подробную информацию о библиотеке, потому что это может быть связано с вашей проблемой

...