質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

1回答

3729閲覧

React antd defaultValueが適応されない。

cuku

総合スコア108

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

1グッド

2クリップ

投稿2021/10/07 00:42

編集2021/10/07 01:12

antdライブラリのInputコンポーネントを使っています。
初期値に3を入れているのですが初期値の3が表示されません。
<Form.Item>のname="input"を消すと初期値が表示されるようになるのですが10文字以上入力した時のエラ〜メッセージが表示されなくなりました。
解決方法わかる人いましたらご教授お願いしたいです。

code

const App = () => { const [value, setValue] = React.useState(null); const [onSave, setOnSave] = React.useState(null); const handleInputChange = React.useCallback((e) => { setValue(Number(e.target.value)); }, []); const onSaveBlur = React.useCallback(() => { if (String(value).length < 10) { setOnSave(true); } else { setOnSave(false); } }, [value]); useEffect(() => { if (value === null) { setValue(3); } }, [value]); console.log(value); return ( <div className="App"> <h1>Hello CodeSandbox</h1> <h2>Start editing to see some magic happen!</h2> <Form> <Form.Item name="input" rules={[ { max: 10, message: "length should be less then 10 letters!" } ]} > <Input type="number" value={value} onChange={handleInputChange} onBlur={onSaveBlur} ></Input> </Form.Item> </Form> </div> ); }; export default App; reactjs
enokia👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

valuedefaultValueは共存できません。defaultValueを指定するのではなく、valueに初期値を設定する、という方法で対応しましょう。

投稿2021/10/07 00:47

maisumakun

総合スコア145208

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2021/10/07 00:49

const [value, setValue] = React.useState(3);
cuku

2021/10/07 01:13

またuseEffectで初期値を設定してあげるようにしたいです。
maisumakun

2021/10/07 01:14

> またuseEffectで初期値を設定してあげるようにしたいです。 useStateに書くのでは何が不満なのでしょうか?
cuku

2021/10/07 01:16 編集

登録したデータがある場合はデータから取得してきた数字をuseEffectで設定してあげる形にしたいのでuseEffectにしたいです。
cuku

2021/10/07 01:25

ありがとうございます。 僕もそれをみたのですがどれで制御したらいいかわからず、、、 結局できませんでした
maisumakun

2021/10/07 01:39

Reactの常識が通用しなくて、逆に使いづらい印象ですね…
cuku

2021/10/07 01:42

サンプル見てみてもよく理解できず、、、
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問