• Как предзагрузить компонент?

    sanManjiro
    @sanManjiro Автор вопроса
    Все оказалось очень просто, я просто сделал функцию асинхронной и все)
    Ответ написан
    Комментировать
  • Как перезаписывать объекты в useState?

    sanManjiro
    @sanManjiro Автор вопроса
    Решил я эту проблему, заключалась она в том, что я о приоре не правильно записывал значения в объект, нужно было писать не setPassport({...passport, placeOfIssue: value}), а что-то вроде такого:
    useEffect (() => {
        PlaceOfIssueScript(
          (value) => setPassport(prevState => {
            return {...prevState, placeOfIssue: value }
          }),
          (value) => setPassport(prevState => {
            return {...prevState, ouCode: value.replace(/[^0-9]/g, '') }
          }),
          setStatusSelec
        )
      }, [passport])

    Я не знаю почему не работал предыдущий способ, потому что по факту, мы делаем то же самое, берем наши объект и применяем на них спрутинг, а потом изменяем то значение в объекте, которое нам нужно изменить.
    Ответ написан
    Комментировать
  • Как запретить ввод цифры 8 и 7 вторым символом через .replace()?

    sanManjiro
    @sanManjiro Автор вопроса
    Я сделал это путем создание функции, которая позволяет первый раз при вводе номера удалять цифры 8 или 7, вот сама функция:
    const setCharAt = (str,index,chr) => {
      if(index > str.length-1) return str;
      str.substring(0,index) + chr + str.substring(index+1);
    }
    
    export const formatNumber = (string) => {
      if (string.charAt(0) === "8" || string.charAt(0) === "7") {
        return string = setCharAt(string, 0, "")
      } else if ((string.charAt(0) === "8" || string.charAt(0) === "7") && (string.charAt(1) === "8" || string.charAt(1) === "7")) { 
        string = setCharAt(string, 0, "")
        return string = setCharAt(string, 1, "")
      }
    }
    Ответ написан
  • Как добавить текст к числу в поле Value?

    sanManjiro
    @sanManjiro Автор вопроса
    Вопрос можно считать закрытым, очень сильно помучившись, методом научного тыка я смог сделать маску, которая добавляет в конец нужный знак или же текст, и при этом делит число на разряды пробелом, и запрещает вводить числа, установленные в mix и max, вот код кому надо:
    <IMaskInput
         value={convertObjectValues(valueSum, true)}
         mask={"a d"}
         blocks={{ d: { mask: "₽" }, a:{mask: Number, thousandsSeparator: ' ', min: 1500, max: 15000} }}
         lazy={false}
         placeholder={valueSum}
         unmask={true}
         onAccept={ (value) => setValueSum(value) }
         onBlur={handlerBlurSum}
         onPointerLeave={handlerBlurSum}
         onClick={handlerBlurSum}
     />
    Ответ написан
    Комментировать