-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
コントロールパネルの全般ページでサーバ情報を編集・保存するとnullな項目が空文字に置き換わる #15075
Comments
サーバ側の実装を見るとnullも受け付けることから、
のような仕組みをフロントエンド側に設けるのが良いと考えます |
バックエンド側でnullと空文字が区別される状態になっているのが諸悪の根源だわね |
(変えてないはずの値を別の値にして送り返してる…という所に対して違和感を感じるのだけど、僕だけかしら…) |
別の値にしてしまうのはバックエンドがおかしな値を送ってきてるせいだからフロントエンドの実装にそこまで違和感はないわね |
本来、meta.nameなどで「空の値」として想定されるのは空文字であるということです…? |
本来空の場合は空文字にしたい |
まあ空文字で持つとしてもAPIのレスポンス的にはnullにしたい可能性があるからその場合はフロントエンドで何かしらのケアは要るわね |
今からカラム定義を変えるのは現実的ではないからバックエンド的には空文字を許さない方向にして、フロントエンドから空文字が飛んできたらnullとみなすようにするのが良さそう |
理由: 型が簡潔になり、空判定も簡潔になる |
undefinedがきた -> その値は変えない なら、まあ…いいのかな…? |
明示的にnullになることに依存した実装がなければ、BEでnullを空文字にして保存、DBのnullを空文字変換、非nullableかにマイグレーションするほうが今度の展開的によい気がする 追記: |
ClientServerService.tsなど、フィールドがnullであることを期待する処理を全て対応させる必要があるのではないでしょうか。 |
関連すると思われるので貼っておきます。#15097 全体的に空文字の取り回しを見直す必要がある気がしています。 |
💡 Summary
取得時は↑のような内容なのですが、shortName(画面上ではサーバ略称)だけを空欄にして保存ボタンを押すと
↑空文字が送信され、nullだった項目が空文字となってしまいました。
🥰 Expected Behavior
ClientServerService.tsなど、フィールドがnullであることを期待する処理はいくつかあるので、空文字の場合はnullとして登録するのが望ましい挙動と考えます。
🤬 Actual Behavior
nullだったフィールドがフロントエンドを経由することで空文字として登録される
📝 Steps to Reproduce
💻 Frontend Environment
🛰 Backend Environment (for server admin)
Do you want to address this bug yourself?
The text was updated successfully, but these errors were encountered: