7
我確定有一種方法可以做到這一點,但我現在看不到。將Picker綁定到React Native中的Picker.Item列表
我想要做的是添加一個Picker組件,但不是對項目列表進行硬編碼,而是從服務中獲取並將Picker綁定到稍後可以填充的內容。
這是我的,但我的應用程序現在甚至不會運行。請有任何想法嗎?
'use strict';
var React = require('react-native');
var {
Picker,
Text,
View
} = React;
var AvailableServices = React.createClass({
getInitialState() {
var fetchServicesUri = 'http://some.url/available_services';
fetch(fetchServicesUri)
.then((response) => response.json())
.then((responseJson) => {
console.log(responseJson);
var services = [];
for(var service in responseJson.services) {
services.push(<Picker.Item label={service.Label} value={service.Value}/>);
}
this.setState({
services: services
});
})
.catch((error) => {
console.warn(error);
})
.done();
return {
services: [],
selectedService: null
}
},
render() {
return (
<View>
<Text>Pick a service</Text>
<Picker
selectedValue={this.state.selectedService}
onValueChange={(service) => this.setState({selectedService:service})}
>
{this.state.services}
</Picker>
</View>
);
}
});
module.exports = AvailableServices;
謝謝您的回答 - 我已經嘗試過了,肯定還得到了很多。我現在得到這個錯誤:「TypeError:undefined不是一個對象(評估'this.state.services.map')」。將從服務調用返回的JSON解析爲對象時出現問題。如果我嘗試你的例子,並使用一些硬編碼的字符,它工作得很好。謝謝! – Michael
@Michael你是否在數組中調用.map? –
我可以問什麼PickerItem用於?我沒有看到它在任何地方引用。 (我是新來的RN,並試圖理解。) – grantwparks