gpt4 book ai didi

javascript - 将 Picker 绑定(bind)到 React Native 中的 Picker.Item 列表

转载 作者:行者123 更新时间:2023-12-03 03:35:40 28 4
gpt4 key购买 nike

我确信有一种方法可以做到这一点,但我还不知道如何实现。

我想做的是添加一个 Picker 组件,但不是对项目列表进行硬编码,而是从服务中获取该组件,并将 Picker 绑定(bind)到我稍后可以填充的内容。

这是我所拥有的,但我的应用程序现在甚至无法运行。请问有什么想法吗?

'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;

最佳答案

您可能应该将初始状态设置为空数组,然后在 componentWillMount 或 componentDidMount 上调用您的服务。我已经设置了一些可以处理一些虚拟数据的东西 here ,并粘贴下面的代码。

'use strict';
var React = require('react-native');
var {
Picker,
Text,
View,
AppRegistry
} = React;

var PickerItem = Picker.Item;

var SampleApp = React.createClass({
getInitialState() {
return {
services: ['a', 'b', 'c', 'd', 'e'],
selectedService: 'a'
}
},

componentDidMount() {
setTimeout(() => {
this.setState({
services: [ 'one', 'two', 'three', 'four', 'five' ]
})
}, 3000)
},

render() {
let serviceItems = this.state.services.map( (s, i) => {
return <Picker.Item key={i} value={s} label={s} />
});

return (
<View>
<Text>Pick a service</Text>
<Picker
selectedValue={this.state.selectedService}
onValueChange={ (service) => ( this.setState({selectedService:service}) ) } >

{serviceItems}

</Picker>
</View>
);
}
});


AppRegistry.registerComponent('SampleApp', () => SampleApp);

关于javascript - 将 Picker 绑定(bind)到 React Native 中的 Picker.Item 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35397678/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com