Switchが盗まれたので買い直したらアカウント関連でドタバタした話
Switch落とした…ありえんけど…
— すっごーい菜 (@happou31) 2017年9月24日
となってから、
ウオオオオオオオオオオオオオオオアアアアアアアアアアアアアアアアアアアアアアアアアアアアアア!!!!!!!!!!!!!!! pic.twitter.com/9tLSLc0bPX
— すっごーい菜 (@happou31) 2017年10月4日
こうなるまでの話です。
ポイントは2つです。
- ユーザー側からは「ダウンロード出来る本体」の紐付け解除は、紐付けを行った本体からでしか行えない
- サポートに問い合わせる際に「新しい本体の製造番号」をアカウントの情報と共に伝えれば、紛失した本体の登録を解除する対応をしてもらえることがある
ニンテンドーアカウントとダウンロードソフトについては権利がガチガチなイメージがありましたが、特に任天堂と揉めたということはなく、非常に丁寧かつ素早く(2回問い合わせて合計4営業日)対応して頂けました。本当にありがとうございました。
以下は、どうしてこうなったかを時系列順にお話しします。
【Angular4】FormGroupに入れ子になったFormArrayをComponentの親子で共有する
Angular4でも2でも動くと思うけど4って書いたほうがかっこいいかなと思って。
Angular4でComponentを書いてるとしばしば次のような問題にブチ当たります。
Componentが無限にデカくなる
最初から適切に画面の分割ができていればいいんですが、実際のプロダクトだと設計書の段階ですでに闇鍋だったりして、頑張ってServiceにロジックを詰め込んでも、一つのcomponent.tsがUI操作だけで2000行とかになったりして無事に死にます。
これに対する応急措置として、親子関係を作ってComponentを分割するというのがありますが、FormGroupを使って入力値の管理をしている場合は一筋縄では行きません。(僕は行きませんでした)
特に、親元のFormGroupの中にFormArrayが入っていてるときに、その部分を分割しようとすると、子Componentから直接親のFormGroupが見えないため、Cannot read property 'getFormArray' of null
ようなエラーが出て上手く動きません。
公式ドキュメントもイマイチ参考にならなかったので色々試行錯誤したところ、ようやくうまくいく方法が見つかったので、覚え書きしておきます。