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

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

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

React Nativeは、ネイティブモバイルアプリ(iOS/Android)を作成できるJavaScriptフレームワークです。Reactと同じ設計のため、宣言的なコンポーネントでリッチなUIを開発することが可能です。

Q&A

1回答

1630閲覧

React NativeのClass内で定数を宣言できない理由

rina_teratail

総合スコア14

React Native

React Nativeは、ネイティブモバイルアプリ(iOS/Android)を作成できるJavaScriptフレームワークです。Reactと同じ設計のため、宣言的なコンポーネントでリッチなUIを開発することが可能です。

0グッド

0クリップ

投稿2018/12/06 07:20

React NativeのClass内で定数を宣言すると、

jsx

1'use strict'; 2import React, { Component } from 'react'; 3import { Text, View } from 'react-native'; 4import random from 'random'; 5 6export default class Random extends Component { 7 const random = random.generate(); 8 render() { 9 return ( 10 <View> 11 <Text>{random}</Text> 12 </View> 13 ); 14 } 15}

Parsing error: Unexpected tokenというエラーが出るのですが、

Class外で宣言するとうまくいきます。

jsx

1'use strict'; 2import React, { Component } from 'react'; 3import { Text, View } from 'react-native'; 4import random from 'random'; 5 6const random = random.generate(); 7 8export default class Random extends Component { 9 render() { 10 return ( 11 <View> 12 <Text>{random}</Text> 13 </View> 14 ); 15 } 16}

これはなぜでしょうか?

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

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

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

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

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

guest

回答1

0

これはなぜでしょうか?

いまのところ、クラスで定数を宣言する文法がないからです。

なお、クラスオブジェクトへの代入は、constではなくstaticを使えば可能です(Babelでの変換がほぼ必須ですが)。

javascript

1export default class Random extends Component { 2 static random = random.generate(); 3 render() { 4 return ( 5 <View> 6 <Text>{Random.random}</Text> 7 </View> 8 ); 9 } 10}

投稿2018/12/06 07:28

maisumakun

総合スコア145184

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

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

rina_teratail

2018/12/07 01:01

ただ、定数を宣言して、propsやstylesのオブジェクトを入れることは可能ですよね?
maisumakun

2018/12/07 01:02

> ただ、定数を宣言して、propsやstylesのオブジェクトを入れることは可能ですよね? どういうことでしょうか。
rina_teratail

2018/12/07 01:39

失礼しました。functional componentとの勘違いでした。 class componentでは定数の宣言はできず、functional componentでは定数を宣言してその中にstylesオブジェクトやpropsオブジェクトを入れれるということですよね??
maisumakun

2018/12/07 01:41

クラスコンポーネントでもrender()内で「const {props} = this;」のようなことはできます。
rina_teratail

2018/12/13 10:51

つまりmethodの中でなければ定数を宣言できないよいうことでしょうか?
maisumakun

2018/12/13 13:21

そもそも、クラスにする以前のオブジェクト自体に「定数」という機能がないですし。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問