构建下拉列表并从 URL 动态获取 JSON 数据的最佳方法是什么
What is the best way to construct a dropdown and fetch JSON data dynamically from a URL
我的下拉菜单有三个项目 ===> Item0,Item1,Item2 。
每次我 select 一个特定的项目时,我想获取 JSON 数据并将其显示在页面上(在 IOS 上)。我不明白在哪里为下拉列表定义 onPress 事件。
任何帮助将不胜感激。
const leveldata = [
{ value: 'level1', props: { disabled: true } },
{ value: 'level2' },
{ value: 'level3' },
];class TopScores extends Component {
constructor(props) {
super(props);
this.onChangeText = this.onChangeText.bind(this);
this.state = {
data: [],
};
}
onChangeText() {
if (leveldata.value === 'leve1') {
fetch('url')
.then((response) => response.json())
.then((responseData) => {
this.setState({
newdata: responseData.newdata,
});
})
.done();
} else if (leveldata.value === 'level2') {
fetch('url1')
.then((response) => response.json())
.then((responseData) => {
this.setState({
newdata: responseData.newdata,
});
})
.done();
}
}
render() {
console.log('data:', this.state.data);
return (
<View>
<View style={styles.container1}>
<Image
/* eslint-disable global-require */
source={require('../Images/Top.png')}
/* eslint-enable global-require */
/>
<Text style={styles.Text1}> Top Contenders</Text>
</View>
<View>
<Dropdown
data={leveldata}
label='Level'
onChangeText={this.onChangeText}
/>
</View>
</View>
);
}
}
如果我没记错的话你需要添加 onChangeText
道具。
import React, { Component } from 'react';
import {
Text,
View,
StyleSheet,
Image
} from 'react-native';
import { Dropdown } from 'react-native-material-dropdown';
const leveldata = [
{ value: 'level1', props: { disabled: true } },
{ value: 'level2' },
{ value: 'level3' }
];
class TopScores extends Component {
constructor(props) {
super(props);
this.onChangeText = this.onChangeText.bind(this);
this.state = {
data: []
};
}
onChangeText(text) {
if(text === 'leve1'){
fetch('url')
.then((response) => response.json())
.then((responseData) => {
this.setState({
newdata: responseData.newdata,
});
})
.done();
}
}
render() {
return (
<View>
<Dropdown
data={leveldata}
label='Level'
onChangeText={this.onChangeText} />
</View>
);
}
}
我的下拉菜单有三个项目 ===> Item0,Item1,Item2 。 每次我 select 一个特定的项目时,我想获取 JSON 数据并将其显示在页面上(在 IOS 上)。我不明白在哪里为下拉列表定义 onPress 事件。 任何帮助将不胜感激。
const leveldata = [
{ value: 'level1', props: { disabled: true } },
{ value: 'level2' },
{ value: 'level3' },
];class TopScores extends Component {
constructor(props) {
super(props);
this.onChangeText = this.onChangeText.bind(this);
this.state = {
data: [],
};
}
onChangeText() {
if (leveldata.value === 'leve1') {
fetch('url')
.then((response) => response.json())
.then((responseData) => {
this.setState({
newdata: responseData.newdata,
});
})
.done();
} else if (leveldata.value === 'level2') {
fetch('url1')
.then((response) => response.json())
.then((responseData) => {
this.setState({
newdata: responseData.newdata,
});
})
.done();
}
}
render() {
console.log('data:', this.state.data);
return (
<View>
<View style={styles.container1}>
<Image
/* eslint-disable global-require */
source={require('../Images/Top.png')}
/* eslint-enable global-require */
/>
<Text style={styles.Text1}> Top Contenders</Text>
</View>
<View>
<Dropdown
data={leveldata}
label='Level'
onChangeText={this.onChangeText}
/>
</View>
</View>
);
}
}
如果我没记错的话你需要添加 onChangeText
道具。
import React, { Component } from 'react';
import {
Text,
View,
StyleSheet,
Image
} from 'react-native';
import { Dropdown } from 'react-native-material-dropdown';
const leveldata = [
{ value: 'level1', props: { disabled: true } },
{ value: 'level2' },
{ value: 'level3' }
];
class TopScores extends Component {
constructor(props) {
super(props);
this.onChangeText = this.onChangeText.bind(this);
this.state = {
data: []
};
}
onChangeText(text) {
if(text === 'leve1'){
fetch('url')
.then((response) => response.json())
.then((responseData) => {
this.setState({
newdata: responseData.newdata,
});
})
.done();
}
}
render() {
return (
<View>
<Dropdown
data={leveldata}
label='Level'
onChangeText={this.onChangeText} />
</View>
);
}
}