反应 select 异步选项,
react select async option,
我正在尝试将 this component 与使用 es5 的异步选项一起使用。我的 componentDidmount 中有一个服务调用,它使用回调设置学校数组:
componentDidMount: function(){
SchoolsDataService.getSchools(
this.setSchoolsState
);
将学校列表设置为州数组
setSchoolsState: function(data){
this.setState({schools: data.schools})
},
服务:
getSchools: function (callback) {
var url = 'xxxx';
request
.get(url)
.set('Accept', 'application/json')
.end(function (err, res) {
if (res.ok) {
var data = res.body;
if (data) {
callback(data);
}
}
});
}
如何使用文档中的示例进行设置?我应该在哪里调用异步版本的服务并生成选项列表?
var getOptions = function(input, callback) {
setTimeout(function() {
callback(null, {
options: [
{ value: 'one', label: 'One' },
{ value: 'two', label: 'Two' }
],
// CAREFUL! Only set this to true when there are no more options,
// or more specific queries will not be sent to the server.
complete: true
});
}, 500);
};
我的组件使用以下方式呈现:
<Select.Async
name="form-field-name"
value="one"
loadOptions={getOptions}/>
我收到这个错误:
未捕获的不变违规:元素类型无效:应为字符串(对于内置组件)或 class/function(对于复合组件)但得到:未定义。检查 TableModalComponent
.
的渲染方法
我把它放在我页面的顶部:
Select = require('react-select'),
我认为您在这里有 2 个不同的选择:
要么你留在 componentDidMount 中更新本地状态的服务调用,然后你不需要异步选项,因为你可以直接将 options={this.state.schools} 传递给 select -组件,
或者您不需要本地状态(也不需要 componentDidMount 服务调用),因为您直接在 getOptions 函数中调用服务(对于异步选项 select-组件):
var getOptions = function(input, callback) {
setTimeout(function() {
SchoolsDataService.getSchools(function(data) {
callback(null, {
options: data.schools,
complete: true,
});
});
}, 500);
};
我正在尝试将 this component 与使用 es5 的异步选项一起使用。我的 componentDidmount 中有一个服务调用,它使用回调设置学校数组:
componentDidMount: function(){
SchoolsDataService.getSchools(
this.setSchoolsState
);
将学校列表设置为州数组
setSchoolsState: function(data){
this.setState({schools: data.schools})
},
服务:
getSchools: function (callback) {
var url = 'xxxx';
request
.get(url)
.set('Accept', 'application/json')
.end(function (err, res) {
if (res.ok) {
var data = res.body;
if (data) {
callback(data);
}
}
});
}
如何使用文档中的示例进行设置?我应该在哪里调用异步版本的服务并生成选项列表?
var getOptions = function(input, callback) {
setTimeout(function() {
callback(null, {
options: [
{ value: 'one', label: 'One' },
{ value: 'two', label: 'Two' }
],
// CAREFUL! Only set this to true when there are no more options,
// or more specific queries will not be sent to the server.
complete: true
});
}, 500);
};
我的组件使用以下方式呈现:
<Select.Async
name="form-field-name"
value="one"
loadOptions={getOptions}/>
我收到这个错误:
未捕获的不变违规:元素类型无效:应为字符串(对于内置组件)或 class/function(对于复合组件)但得到:未定义。检查 TableModalComponent
.
我把它放在我页面的顶部:
Select = require('react-select'),
我认为您在这里有 2 个不同的选择:
要么你留在 componentDidMount 中更新本地状态的服务调用,然后你不需要异步选项,因为你可以直接将 options={this.state.schools} 传递给 select -组件,
或者您不需要本地状态(也不需要 componentDidMount 服务调用),因为您直接在 getOptions 函数中调用服务(对于异步选项 select-组件):
var getOptions = function(input, callback) {
setTimeout(function() {
SchoolsDataService.getSchools(function(data) {
callback(null, {
options: data.schools,
complete: true,
});
});
}, 500);
};