reactjs - 如何在本机反应中使用选择器中数据库中的 responseJson 数据
问题描述
我获取响应 Jeson,我需要在选择器中使用它,但是在运行代码时我遇到了这个问题: TypeError: TypeError: undefined is not an object (evalating 'this.state.dataSource.map')
当我使用一个平面列表时,它会运行 whitout 问题
<Picker selectedValue = {this.state.time} onValueChange = {this.updatetime}>
{this.state.dataSource.map((item, key)=>(
<Picker.Item label={item} value={item} key={key} />)
)}
</Picker>
日期函数 = () =>{
fetch('http://192.168.1.111:8000//mobreservedTimes?date='+this.state.date , {
method: 'get',
/* body: JSON.stringify({
datepik: 20-7-2019 ,
})*/
}).then((response) => response.json())
.then((responseJson) => {
this.setState({
isLoading: false,
dataSource: responseJson.avTimes,
}, function(){
});
}).catch((error) => {
console.error(error);
alert(error);
});
TypeError:TypeError:未定义不是对象(评估'this.state.dataSource.map')
解决方案
将您的代码更新为
{this.state.dataSource && (<Picker selectedValue = {this.state.time} onValueChange = {this.updatetime}>
{this.state.dataSource.map((item, key)=>(
<Picker.Item label={item} value={item} key={key} />)
)}
</Picker>)}
这个想法是,在渲染之前检查以确保this.state.dataSource
不为空Picker
推荐阅读
- python - 数据框中每列的分位数值
- java - Preparestatement不适用于连续问号
- javascript - 你能解释一下为什么这些正则表达式很慢吗
- bash - 容器内的docker curl套接字
- c - 如何跟踪:C:\S3\S3\HauteurS3.c|178|警告:'fArray_I_I_I_lsm.241'可能在此函数中未初始化[-Wmaybe-uninitialized]|
- internet-explorer - 在 iexplorer 中显示 64 位的 pdf
- javascript - 如何以角度将纯js函数注册到@Output
- wcf - WCF 服务回调与用于 Web 通知的 Web 推送 API 集成
- jsp - 如何解决没有可用于配置选项的 Java 编译器 compilerClassName: [null] and compiler: [null]
- php - 为什么找不到我的界面?