発生している問題・エラーメッセージ
React, Material-UIを使って開発をしています。
Material-UIのTextFieldで1文字打つたびにフォーカスが外れてしまいます。
なお、TextFieldで入力した値はreact-hook-formでwatchしています。
原因、解決方法を教えていただきたいです。
該当のソースコード
react
1return ( 2 <form onSubmit={handleSubmit(onSubmit)}> 3 <MuiGrid 4 container 5 xs={7} 6 md={8} 7 sx={{ m: 'auto' }} 8 alignItems="center" 9 justifyContent="center"> 10 <Table aria-label="collapsible table"> 11 <TableBody> 12 <TableRow sx={{ p: 0, height: '56px' }} key={'1'}> 13 <TableCell 14 sx={{ p: 1.5, width: '20%' }} 15 component="tr" 16 scope="row"> 17 <Typography>割合(%)</Typography> 18 </TableCell> 19 <TableCell 20 component="tr" 21 scope="row" 22 sx={{ 23 p: 1.5, 24 textAlign: 'center', 25 justifyContent: 'space-between', 26 alignItems: 'center', 27 }}> 28 29 // ここが該当箇所です。 30 // TextFieldで入力した値はreact-hook-formでwatchしています。 31 <TextField 32 label="割合" 33 type="text" 34 margin="normal" 35 sx={{ margin: 0, width: 100 }} 36 inputRef={el => (keyRef.current = el)} 37 {...register('netRate', { 38 pattern: /^[0-9]+$/, 39 setValueAs: value => 40 !parseInt(value) ? 0 : parseInt(value), 41 })} 42 InputProps={{ 43 inputProps: { 44 style: { textAlign: 'right', padding: 10 }, 45 }, 46 }} 47 /> 48 49 </TableCell> 50 </TableRow> 51 </TableBody> 52 </Table> 53 </form> 54 ) 55})
試したこと
以下の方法を試してみましたが、解決できてませんでした。
TextFieldを別コンポーネントにして外に出す
inputProps={{ autoFocus: true }} を追記する
inputRef={input => input && input.focus()} でフォーカスさせる

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。