OtpInput 是另一个组件,OTPLength 是从父组件获取的道具,是必需的。
{
const otp = getOtpValue()
const inputs = []
for (let index = 0; index < OTPLength; index++) {
inputs.push(
<Input
key={index}
focus={activeInput === index}
value={otp[index]}
onChange={handleOnChange}
onKeyDown={handleOnKeyDown}
onInput={handelOnInput}
onInputFocus={onInputFocus}
index={index}
secure={secure}
invalid={invalid}
autoFocus={autoFocus}
/>
)
}
return inputs
}
已经尝试并更改了以下方式,但我只得到一个输入,而不是在 OTPLength 中作为道具传递的值,然后用于创建基于 OTPLength 的新数组。
const renderInputs = useMemo(() => {
const otp = getOtpValue()
const inputs = new Array(OTPLength)
return [...inputs].map((_,index) =>
<Input
key={index}
focus={activeInput === index}
value={otp[index]}
onChange={handleOnChange}
onKeyDown={handleOnKeyDown}
onInput={handelOnInput}
onInputFocus={onInputFocus}
index={index}
secure={secure}
invalid={invalid}
autoFocus={autoFocus}
/>
)
}, [
getOtpValue,
OTPLength,
activeInput,
handleOnChange,
handleOnKeyDown,
handelOnInput,
onInputFocus,
autoFocus,
invalid,
secure
])
慕的地10843
aluckdog
慕雪6442864
相关分类