- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我从我的 API 获取 JSON 数据的代码。我想做的是在我的 Flatlist 中打印各种药物的名称,然后使该对象可点击,这样我就可以在下一页上显示有关它的更多信息。我可以正确接收 JSON 数据,但我的问题在于显示它。我的第一个警报显示我的药物数组(两种药物)中的内容,但是当我尝试显示这些名称时,我得到“未定义”,但显然有一个名为“名称”的字段与数据相关联。
我的 flatlist 没有抛出任何错误,它只是不显示任何东西。我不确定此时还可以尝试什么。
import React from 'react'
import {
View,
Text,
Button,
StyleSheet,
FlatList,
ActivityIndicator,
AsyncStorage
} from 'react-native'
import Swipeout from 'react-native-swipeout';
import { goToAuth } from '../../helpers/Navigation'
import { Navigation } from 'react-native-navigation';
import { USER_KEY, USERID_KEY, USERNAME, PASSWORD, API_URL } from '../../helpers/Config'
import { refreshToken } from '../../helpers/Helper'
export default class Medication extends React.Component {
constructor(props) {
super(props);
this.state = { isLoading: true, dataSource: [] }
this.getMedications();
}
static get options() {
return {
topBar: {
title: {
text: 'Medication'
},
}
};
}
componentDidMount() {
}
getMedications = async () => {
// used to assign the medication to the specific individual
const userID = await AsyncStorage.getItem(USERID_KEY);
// used to access the protected links
const userToken = await AsyncStorage.getItem(USER_KEY);
fetch(API_URL + '/medications/all/' + userID, {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'x-access-token': userToken
},
})
.then((response) => response.json())
.then((responseJson) => {
alert(responseJson.status);
alert(responseJson.message);
// displays all medication data
alert(JSON.stringify(responseJson.data.medications));
// should display the names, displays undefined
alert(JSON.stringify(responseJson.data.medications.name));
this.setState({
isLoading: false,
dataSource: responseJson,
});
})
.catch((error) => {
console.error(error);
});
}
logout = async () => {
try {
await AsyncStorage.removeItem(USER_KEY)
goToAuth()
} catch (err) {
console.log('error signing out...: ', err)
}
}
render() {
if (this.state.isLoading) {
return (
<View style={{ flex: 1, padding: 20 }}>
<ActivityIndicator />
</View>
)
}
return (
<View style={styles.container}>
<FlatList>
data={this.state.dataSource}
renderItem={({ item }) => <Text>{item.data.medications.name}</Text>}
keyExtractor={(item, index) => index}
</FlatList>
<Button
onPress={this.logout}
title="Sign Out"
/>
<Button
onPress={() => {
Navigation.push(this.props.componentId, {
component: {
name: 'MedicationDetailScreen',
}
});
}}
title="View Medication Detail Screen"
/>
<Button
onPress={() => {
Navigation.push(this.props.componentId, {
component: {
name: 'AddMedicationScreen',
}
});
}}
title="View Add Medication Screen"
/>
</View>
)
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center'
}
})
最佳答案
关注doc我看到的 data
属性是一个数组。你应该像这样setState
of dataSource
this.setState({
isLoading: false,
dataSource: responseJson.data.medications,
});
并且由于 responseJson.data.medications
是一个数组,您无法获取项目的 name
属性。您必须首先确定您想要获得哪个项目 name
。一定是
alert(JSON.stringify(responseJson.data.medications[0].name)) // For example the first item
关于javascript - responseJson 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55272312/
我以 JSON 格式从 Python Flask 发送数据。我能够获取数据,并在本地托管页面 http://127.0.0.1:5000/ 上的检查器中使用 for 循环。但是,当我将相同的 Java
在我的 javascript 文件中,我注意到我的问题出现在 JS 文件的第 19、30 和 35 行。我可以让 responseJson 在 getUserRepos() 函数中登录到控制台,但是如
这是我从我的 API 获取 JSON 数据的代码。我想做的是在我的 Flatlist 中打印各种药物的名称,然后使该对象可点击,这样我就可以在下一页上显示有关它的更多信息。我可以正确接收 JSON 数
我正在使用 Alamofire 尝试使用 image shack API 将图像放在图像棚服务器上。我没有收到回复并收到错误: FAILURE: Error Domain=NSCocoaErrorDo
我想限制 12 个帖子,只显示 post_featured 键值为 1 的精选帖子 componentDidMount() { return fetch(ConfigApp.URL+'json/
我正忙于研究为 Swift 创建的 Alamofire 网络库。我遇到过 responseJSON 函数: public func responseJSON( queue queue:
我正在使用 AlamoFire 调用我的网络服务: ApiManager.manager.request(.GET, webServiceCallUrl, parameters: ["id": 12
我正在尝试在我的应用程序中全局处理所有 ajax 异常。 我有一个简单的验证异常,在 ajax post 请求发送到服务器后抛出。 if (string.IsNullOrEmpty(name)) {
我有这种方法可以联系我的 REST 网络服务。我想在连接失败时生成异常。Xcode 告诉我不能使用函数 throw VendingMachineError.InvalidSelection 因为 me
鉴于以下情况: $(function() { function getTopMod(e) { var requesturl = '/r/lol/about/moderators
我正在开发一个小型网络框架来运行 HCI 研究并遇到以下问题: 我有一个运行 express 的 Node 服务器,用于从 JSON 文件为我的本地主机数据提供服务。不是最好的数据库,但由于它是一个单
我将 sessionManager.request 与 .validate().responseJSON 一起使用 是否可以在将响应传递给 responseJSON 之前修改我从服务器获得的响应?我需
( swift 2.2,Alamofire 3.0) 我有一个相当复杂的错误/状态检查协议(protocol),我在我的许多 REST 调用之后应用它,我自然希望重新使用此代码。 Alamofire.
我有处理位置数据的代码,因此我可以提取可以匿名化数据的详细信息——例如,如果我的地点 API 说它是 _type:“Building”和 building:“Safeway”——我可以保存数据作为纬度
Alamofire.request(todoEndpoint) .responseJSON { response in switch response.resu
我正在使用 alamofire 上传图片。这是注册 API,您可以在其中使用个人资料照片进行注册(这是我必须上传的内容) 所以我的代码是这样的(我将用另一个代码替换 print(JSON);这只是为了
注意:我需要使用 ObjectMapper,而不是 AlamoFireObjectMapper。 如何不去JSON而是从responseJSON数据映射到User?以下是尝试从 responseJSO
我有以下代码来获取对评论列表的回复。 (1条评论多条回复) static func fetchCommentsAndTheirReplies(articleId: String, failure: (
我正在尝试在 javascript 中解析一个 bit.ly JSON 响应。 我通过 XmlHttpRequest 获取 JSON。 var req = new XMLHttpRequest; r
我是 Swift 新手,我正在尝试升级一些旧的 Swift 代码。我收到以下警告: 'responseJSON(queue:dataPreprocessor:emptyResponseCodes:em
我是一名优秀的程序员,十分优秀!