当我点击视图时,native-native每次如何执行功能

时间:2019-02-16 03:32:13

标签: javascript react-native

首先,抱歉我的英语不好。在个人资料页面中点击时,我试图设置一个登录对话框。我使用了import 'package:flutter/material.dart'; void main() { runApp(new MyApp()); } class MyApp extends StatefulWidget { @override State<StatefulWidget> createState() { return HomeScreen(); } } //List is here, had to make global so I could access in 2 widgets List<TrailModel> trails = []; class HomeScreen extends State<MyApp> { Future<List<TrailModel>> fetchData() async { final response = await get('url_here'); final trailModels = List<TrailModel>(); final trailModel = TrailModel.fromJson(json.decode(response.body)); trailModels.add(trailModel); return trailModels; } @override Widget build(BuildContext ctxt) { return MaterialApp( home: Scaffold( appBar: AppBar( title: Text("HikeLocator"), ), body: new RaisedButton( child: Text("click me"), onPressed: () async { final trails = await fetchData(); Navigator.push( ctxt, new MaterialPageRoute(builder: (ctxt) => new ListScreen(trails)), ); } ), ), ); } } //Display ListView in here class ListScreen extends StatelessWidget { final List<TrailModel> trails; ListScreen(this.trails); @override Widget build(BuildContext ctxt) { return new Scaffold( appBar: new AppBar( title: new Text("This is where the list lies"), ), body:TrailList(trails), ); } } //create ListView here which I want displayed on 2nd page class TrailList extends StatelessWidget { final List<TrailModel> trails; TrailList(this.trails); Widget build(context) { return ListView.builder( itemCount: trails.length, itemBuilder: (context, int index) { String myText = trails[index].trails.toString(); var splitString = myText.split("\, type"); var splitString2 = splitString[0]; var splitString3 = splitString2.split("name: "); String name = splitString3[1]; splitString = myText.split("\, name"); splitString2 = splitString[0]; splitString3 = splitString2.split("id: "); String id = splitString3[1]; splitString = myText.split("\, conditionStatus"); splitString2 = splitString[0]; splitString3 = splitString2.split("latitude: "); String latitude = splitString3[1]; splitString = myText.split("\, latitude"); splitString2 = splitString[0]; splitString3 = splitString2.split("longitude: "); String longitude = splitString3[1]; splitString = myText.split("\, url"); splitString2 = splitString[0]; splitString3 = splitString2.split(" location: "); String location = splitString3[1]; return Text( "name: $name,\n location: $location, \nlatitude: $latitude, \nlongitude: $longitude\n"); }, ); } } class TrailModel { Object trails; TrailModel(this.trails); TrailModel.fromJson(Map<String, dynamic> parsedJson) { trails = parsedJson['trails']; } } 作为标签栏。

如果我在react-navigation中执行函数。它只执行一次。我回到主页,然后再次点击个人资料页面。它不会再次执行。

  

componentDidMount(){       this._bootstrapAsync(); }

我每次在视图中使用Tab键可以执行该功能的解决方案是什么?非常感谢。

1 个答案:

答案 0 :(得分:1)

尝试下面的链接。这将为您的问题提供答案。

Handle Tab changes in React Navigation v2

React Navigation V3 Tab changes