7
これを行う方法はあると確信していますが、私はまだどのように見えていません。Picker.ItemをReactネイティブにリストするバインド・ピッカー
ピッカーコンポーネントを追加するのですが、アイテムのリストをハードコードし、サービスからフェッチして、後で取り込めるものにピッカーをバインドしてください。
これは私が持っているものですが、私のアプリは今実行されません。どんなアイデアですか?
'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:未定義は '(this.state.services.map'を評価する)オブジェクトではありません"。返されたJSONをサービス呼び出しからオブジェクトに解析する際の問題です。あなたの例を試して、いくつかのハードコードされた文字を使用するとうまくいきます。ありがとう! – Michael
@Michaelは配列の.mapを呼び出していましたか? –
PickerItemの用途は何ですか?私はそれがどこでも参照されて表示されません。 (私はRNを使い慣れていて、理解しようとしています) – grantwparks