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

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

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

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

0回答

538閲覧

swiftの変数のスコープと宣言の場所について

fu_3823

総合スコア81

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2020/09/03 02:40

編集2020/09/03 05:35

以下のコードを二つのファイルに分けて書きました。
このコードで、dataArrayを更新し、リストで表示しようとしています。
変数dataArrayが二ヶ所で宣言されています。
試行錯誤しながら修正しているところなのですが、現状では//###_1と//###_4が紐づいて動き、//###_2と//###_3が紐づいて動いているようです。
dataArrayの宣言を一つにして、それを//###_3と//###_4で使いたいのですが、上手くいきません。
基本的な事だとは思いますが、よくわかりません。
どうのように書くと良いのでしょうか。

swift

1#ContentView.swift) 2import SwiftUI 3 4struct Data: Identifiable { 5 var id: Int 6 var data: String 7 8 init(id: Int, data: String) { 9 self.id = id 10 self.data = data 11 } 12} 13 14var dataArray:[Data] = [] //###_1 15struct ContentView: View { 16 @State var url: String = "" 17 @State var dataArray:[Data] = [] //###_2 18 19 var body: some View { 20 VStack { 21 HStack { 22 TextField("URLを入力してください", text: $url) 23 Button(action: { 24 self.dataArray.append(Data(id:self.dataArray.count, data:self.url)) //###_3 25 }) { 26 Text("Add") 27 } 28 } 29       List(dataArray) { item in 30 URLRowView(rowData: item) 31 } 32 } 33}

swift

1#(URLRowView.swift) 2import SwiftUI 3 4//1行分作成用の構造体 5struct URLRowView: View { 6 var rowData:Data 7 8 var body: some View{ 9 HStack { 10 Text(String(rowData.id)) 11 Text(rowData.data) 12 } 13 } 14} 15 16struct URLRowView_Previews: PreviewProvider { 17 static var previews: some View { 18 URLRowView(rowData:dataArray[0]) //###_4 19 } 20}

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

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

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

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

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

y_waiwai

2020/09/03 02:44

で、しつもんはなんでしょうか
fu_3823

2020/09/06 23:00 編集

すみません。本文もタイトルも書きかけのものが投稿されてしまったようです。 訂正しましたので、よろしければご一読ください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問