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

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

新規登録して質問してみよう
ただいま回答率
85.50%
TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

React.js

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

Q&A

0回答

698閲覧

react stateと初期値比べる

satodesu

総合スコア38

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

React.js

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

0グッド

0クリップ

投稿2020/04/09 05:49

やりたいこと
データを保存するボタン(保存ボタン)をデータ登録後に非活性になるようにしたい。

現在は初期値とstateを比べてstateと初期値が同じでないときに保存とキャンセルボタンが活性になるようになっているのですが、
保存ボタンを押してデータ登録後にキャンセルボタンを押すとデータを登録する前の値に戻ってしまいます。
なのでデータ登録後はボタンを非活性にしたいのですがどのようにしたらよいでしょうか?

const initialState = { inputText: TextLength, upperCase: Uppercase, lowerCase: lowerCase, numbers numbers, } interface IState { inputText: number; upperCase: boolean; lowerCase: boolean; } const index:FC = () => { const [state, setState] = useState<IState>(initialState); const changeState = (key: keyof IState) => { setState({ ...state, ...{ [key]: !state[key] } }); }; const onCancelSubmit = () => { setState(initialState); }; const onSubmit = () => { Axios.post('/user', JsonBody({ text_length: state.inputText, uppercase_required: state.upperCase, downcase_required: state.lowerCase, })) .then(() => { succsessMessage(SAVEMESSSAGE); }) .catch(() => handleError(ERRORMESSAGE)); } <Input value={state.inputText} onChange={handleInputChange} /> <Switch checked={upperState} onChange={() => changeState(state.upperCae)} /> <Switch checked={upperState} onChange={() => changeState(state.lowerCase)} /> {!isEqual(state, initialState) && ( <div> <Button onClick={onSubmit} /> 保存 <Button onClick={onCansel} /> キャンセル </div> )}

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

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

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

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

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

og24715

2020/04/10 05:28

丸投げのデバッグ依頼に見えるので、axios でリクエスト投げたりする余分なコードを取り除いたミニマムなサンプルで試して、その結果どうなったのかを示してください。 それと、タイポとインデントを直されたほうが見やすくてよいかと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問