andrea.nieves7 1 年之前
父節點
當前提交
b9fe2a6d5b
共有 1 個檔案被更改,包括 179 行新增58 行删除
  1. 179
    58
      App.js

+ 179
- 58
App.js 查看文件

@@ -22,14 +22,29 @@ function organize(){
22 22
 
23 23
 DropDownPicker.setListMode("SCROLLVIEW")
24 24
 
25
+//data query variables (global)
26
+
27
+const queryBase = "https://api.census.gov/data/2020/acs/acs5/profile?get=group"
28
+const queryEnd = "&in=state:72"
29
+var table = ""
30
+var pueblo = ""
31
+
32
+
33
+function updateTable(value){
34
+	table = value
35
+}
36
+
37
+function updatePueblo(value){
38
+	pueblo = value
39
+}
40
+
25 41
 //calls data query
26 42
 function loadDoc(query) {
27 43
   var xhttp = new XMLHttpRequest();
28 44
   xhttp.onreadystatechange = function() {
29 45
     if (this.readyState == 4 && this.status == 200) {
30 46
          information = this.responseText;
31
-		 console.log(information[6])
32
-		 organize()
47
+		 //organize()
33 48
   }
34 49
   };
35 50
   xhttp.open("GET", query, true);
@@ -42,6 +57,18 @@ function loadDoc(query) {
42 57
 
43 58
 
44 59
 
60
+function fetchData() {
61
+	
62
+	console.log("fetching data")
63
+	
64
+	var query = queryBase + "(" + table + ")&for=county:" + pueblo + queryEnd 
65
+	
66
+	console.log(query)
67
+	
68
+	loadDoc(query)
69
+	
70
+}
71
+
45 72
 //change this to an external css file later
46 73
 const styles = StyleSheet.create({
47 74
 	
@@ -112,48 +139,41 @@ function importJSON() {
112 139
 	return stuff
113 140
 }
114 141
 
115
-//calls update to data in data page
116
-
117
-function updateInfo(option){
118
-	
119
-	switch(option){
120
-	
121
-		case 0:
122
-			break;
123
-		case 1:
124
-			loadDoc("https://api.census.gov/data/2020/acs/acs5/profile?get=group(DP02PR)&for=county:127&in=state:72")
125
-			break;
126
-		case 2:
127
-			loadDoc("https://api.census.gov/data/2020/acs/acs5/profile?get=group(DP03)&for=county:127&in=state:72")
128
-			break;
129
-		case 3:
130
-			loadDoc("https://api.census.gov/data/2020/acs/acs5/profile?get=group(DP04)&for=county:127&in=state:72")
131
-			break;
132
-		case 4:
133
-			loadDoc("https://api.census.gov/data/2020/acs/acs5/profile?get=group(DP05)&for=county:127&in=state:72")
134
-			break;
135
-		
136
-	}
137
-}
138
-
139
-
140
-
141 142
 
142 143
 //data display
143 144
 
144
-function DataDisplay({option}) {
145
-  const [tableValue, setTableValue] = useState(0);
146
-
145
+function DataDisplay({valueTable, valuePueblo}) {
146
+  const [tableValue, setTableValue] = useState(null);
147
+  const [puebloValue, setPuebloValue] = useState(null);
148
+  
149
+  console.log("tableOption:",valueTable)
150
+  console.log("puebloOption:",valuePueblo)
151
+	
152
+//theres something wrong with this, its applying the previous value of valueTable and valuePueblo instead of the actual value
147 153
 
148 154
   useEffect(() => {
149
-    setTableValue(option * 1);
150
-	console.log(tableValue)
151
-    updateInfo(tableValue);
152
-  }, [option]); // add props as dependencies
153
-
155
+    setTableValue(valueTable);
156
+	console.log("tableValue:",tableValue)
157
+	//if not undefined
158
+	if(tableValue){updateTable(tableValue);}   
159
+  }, [valueTable]); // add props as dependencies
160
+  
161
+  useEffect(() => {
162
+    setPuebloValue(valuePueblo);
163
+	console.log("puebloValue:",puebloValue)
164
+    if(puebloValue){updatePueblo(puebloValue)};
165
+  }, [valuePueblo]); // add props as dependencies
166
+	
154 167
 
155 168
   return (
169
+  <View>
156 170
     <Text style={styles.sub}>{information}</Text>
171
+	<Button
172
+		onPress = {fetchData()}
173
+		title = "Fetch Data"
174
+		color = "black"
175
+		/>
176
+   </View>	  
157 177
   );
158 178
 }
159 179
 
@@ -194,44 +214,145 @@ function Picker() {
194 214
 	//table to pick from
195 215
   
196 216
   
197
-  const [open, setOpen] = useState(false);
198
-  const [option, setOption] = useState(0);
199
-  const [value, setValue] = useState(0);
217
+  const [openTable, setOpenTable] = useState(false);
218
+  //const [tableOption, setTableOption] = useState(0);
219
+  const [valueTable, setValueTable] = useState(null);
200 220
   const [table, setTable] = useState([
201
-    {label:'DP02PR', value: 1},
202
-    {label:'DP03', value: 2},
203
-	{label:'DP04', value: 3},
204
-    {label:'DP05', value: 4},
221
+    {label:'DP02PR', value: 'DP02PR'},
222
+    {label:'DP03', value: 'DP03'},
223
+	{label:'DP04', value: 'DP04'},
224
+    {label:'DP05', value: 'DP05'},
205 225
   ]);
206 226
     
207 227
   //cambiar pueblo
208 228
   
209
-  /*
229
+  
210 230
   //pueblo
211
-  const [open2, setOpen2] = useState(false);
212
-  const [value2, setValue2] = useState(null);
231
+  const [openPueblo, setOpenPueblo] = useState(false);
232
+  //const [puebloOption, setPuebloOption] = useState(0);
233
+  const [valuePueblo, setValuePueblo] = useState(null);
213 234
   const [pueblo, setPueblo] = useState([
214
-    {label: 'Apple', value: 'apple'},
215
-    {label: 'Banana', value: 'banana'}
235
+    {label: 'Adjuntas', value: '001'},
236
+    {label: 'Aguada', value: '003'},
237
+	{label: 'Aguadillas', value: '005'},
238
+    {label: 'Aguas Buenas', value: '007'},
239
+	{label: 'Aibonito', value: '009'},
240
+    {label: 'Añasco', value: '011'},
241
+	{label: 'Arecibo', value: '013'},
242
+    {label: 'Arroyo', value: '015'},
243
+	{label: 'Barceloneta', value: '017'},
244
+    {label: 'Barranquitas', value: '019'},
245
+	{label: 'Bayamón', value: '021'},
246
+    {label: 'Cabo Rojo', value: '023'},
247
+	{label: 'Caguas', value: '025'},
248
+    {label: 'Camuy', value: '027'},
249
+	{label: 'Canóvanas', value: '029'},
250
+	{label: 'Carolina', value: '031'},
251
+	{label: 'Cataño', value: '033'},
252
+	{label: 'Cayey', value: '035'},
253
+	{label: 'Ceiba', value: '037'},
254
+	{label: 'Ciales', value: '039'},
255
+	{label: 'Cidra', value: '041'},
256
+	{label: 'Coamo', value: '043'},
257
+	{label: 'Comerío', value: '045'},
258
+	{label: 'Corozal', value: '047'},
259
+	{label: 'Culebra', value: '049'},
260
+	{label: 'Dorado', value: '051'},
261
+	{label: 'Fajardo', value: '053'},
262
+	{label: 'Florida', value: '054'},
263
+	{label: 'Guánica', value: '055'},
264
+	{label: 'Guayama', value: '057'},
265
+	{label: 'Guayanilla', value: '059'},
266
+	{label: 'Guaynabo', value: '061'},	
267
+	{label: 'Gurabo', value: '063'},
268
+	{label: 'Hatillo', value: '065'},
269
+	{label: 'Hormigueros', value: '067'},
270
+	{label: 'Humacao', value: '069'},
271
+	{label: 'Isabela', value: '071'},
272
+	{label: 'Jayuya', value: '073'},
273
+	{label: 'Juana Díaz', value: '075'},
274
+	{label: 'Juncos', value: '077'},
275
+	{label: 'Lajas', value: '079'},
276
+	{label: 'Lares', value: '081'},
277
+	{label: 'Las Marías', value: '083'},
278
+	{label: 'Las Piedras', value: '085'},
279
+	{label: 'Loíza', value: '087'},
280
+	{label: 'Luquillo', value: '089'},
281
+	{label: 'Manatí', value: '091'},
282
+	{label: 'Maricao', value: '093'},
283
+	{label: 'Maunabo', value: '095'},
284
+	{label: 'Mayagüez', value: '097'},
285
+	{label: 'Moca', value: '099'},
286
+	{label: 'Morovis', value: '101'},
287
+	{label: 'Naguabo', value: '103'},
288
+	{label: 'Naranjito', value: '105'},
289
+	{label: 'Orocovis', value: '107'},
290
+	{label: 'Patillas', value: '109'},
291
+	{label: 'Peñuelas', value: '111'},
292
+	{label: 'Ponce', value: '113'},
293
+	{label: 'Quebradillas', value: '115'},
294
+	{label: 'Rincón', value: '117'},
295
+	{label: 'Río Grande', value: '119'},
296
+	{label: 'Sabana Grande', value: '121'},
297
+	{label: 'Salinas', value: '123'},
298
+	{label: 'San Germán', value: '125'},
299
+	{label: 'San Juan', value: '127'},
300
+	{label: 'San Lorenzo', value: '129'},
301
+	{label: 'San Sebastián', value: '131'},
302
+	{label: 'Santa Isabel', value: '133'},
303
+	{label: 'Toa Alta', value: '135'},
304
+	{label: 'Toa Baja', value: '137'},
305
+	{label: 'Trujillo Alto', value: '139'},
306
+	{label: 'Utuado', value: '141'},
307
+	{label: 'Vega Alta', value: '143'},
308
+	{label: 'Vega Baja', value: '145'},
309
+	{label: 'Vieques', value: '147'},
310
+	{label: 'Villalba', value: '149'},
311
+	{label: 'Yabucoa', value: '151'},
312
+	{label: 'Yauco', value: '153'}
216 313
   ]);
217
-  */
314
+  
315
+  
316
+  //make sure pickers are closed when another opens
317
+  
218 318
 
219 319
   return (
220 320
   <View>
221 321
     <DropDownPicker
222
-      open={open}
223
-      value={value}
322
+      open={openTable}
323
+      value={valueTable}
224 324
       items={table}
225
-      setOpen={setOpen}
226
-      setValue={setValue}
325
+      setOpen={setOpenTable}
326
+      setValue={setValueTable}
227 327
       setItems={setTable}
228
-	  onChangeValue={(value) => {
229
-		setOption(current => value);
230
-		}}
231
-
328
+	  //onChangeValue={(valueTable) => {
329
+	//	setTableOption(current => valueTable);
330
+	//	}}
331
+	  onOpen = {() => {setOpenPueblo(false)}}
332
+	  zIndex={3000}
333
+	  zIndexInverse={1000}
334
+	  placeholder="Tabla de Datos"
335
+    />
336
+	
337
+	<DropDownPicker
338
+      searchable={true}
339
+      open={openPueblo}
340
+      value={valuePueblo}
341
+      items={pueblo}
342
+      setOpen={setOpenPueblo}
343
+      setValue={setValuePueblo}
344
+      setItems={setPueblo}
345
+	  //onChangeValue={(valuePueblo) => {
346
+	//	setPuebloOption(current => valuePueblo);
347
+	//	}}
348
+	  onOpen = {() => {setOpenTable(false)}}
349
+	  zIndex={1000}
350
+      zIndexInverse={3000}
351
+	  placeholder="Pueblo"
352
+	  searchPlaceholder="Busqueda..."
232 353
     />
233 354
 	
234
-	<DataDisplay option={option} />
355
+	<DataDisplay valueTable={valueTable} valuePueblo={valuePueblo} />
235 356
 	
236 357
 	</View>
237 358
   );