LoginSignup
0
0

More than 5 years have passed since last update.

NativeScriptのラベルで-1を表示させるために

Posted at

NativeScriptで、数値の -1 をLabelに表示しようとしたときに、表示されないという問題が起きた

環境

NativeScript 3.4 + Angular5

ソース

何を言っているのか?という声が聞こえてきそうなので、ソースを見てほしい。

<Label [text]="-2"></Label> <!-- -2 と表示される -->
<Label [text]="-1"></Label> <!-- 表示されない! -->

ウソのような本当の話。
NativeScript playgroundで実機で見られる再現デモもつくりました
https://play.nativescript.org/?template=play-ng&id=yyoBhg

5,4,3..とカウントダウンしていって、-1 だけ表示されない!ですよね。

countdown.gif

原因

NativeScriptの内部実装としてtextプロパティのデフォルト値を-1としていて、-1をセットすると、デフォルト値にリセット(=空初期化)されてしまうため。

どうすればよいのか

プロパティバインディングではなく、インターポレーションを使えば良い。

<Label text={{ -1 }}></Label> <!-- -1 と表示される! -->

なぜデフォルト値がnullじゃなくて-1なのか不明。NativeScriptチームに聞いてみようと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0