Javascript 获取错误';未定义不是对象';将子字符串与React Native一起使用时
我是新来的 作为实践,我正在构建一个简单的React原生应用程序,在这里我连接到HubSpot的API来检索一些博客文章,显示它们并与它们交互。现在一切正常,但在解析JSON时,我会生成一个字段“publish_date”,其中包含一个时间戳。由于某种原因,这个时间戳包含3个额外的数字,我认为这是时区的。无论如何,当我使用'react timestamp'输出时间戳时,我使用了这个值,我得到的日期太远了。所以我想使用substring删除最后3位数字并输出正确的日期 这是失败代码的一部分:Javascript 获取错误';未定义不是对象';将子字符串与React Native一起使用时,javascript,mobile,react-native,Javascript,Mobile,React Native,我是新来的 作为实践,我正在构建一个简单的React原生应用程序,在这里我连接到HubSpot的API来检索一些博客文章,显示它们并与它们交互。现在一切正常,但在解析JSON时,我会生成一个字段“publish_date”,其中包含一个时间戳。由于某种原因,这个时间戳包含3个额外的数字,我认为这是时区的。无论如何,当我使用'react timestamp'输出时间戳时,我使用了这个值,我得到的日期太远了。所以我想使用substring删除最后3位数字并输出正确的日期 这是失败代码的一部分: re
renderRow(post) {
return(
<View style={styles.row}>
<Image style={styles.image} source={{uri: post.featured_image}} />
<View style={styles.info}>
<Text style={styles.title}>{post.title}</Text>
<Text style={styles.author}>Por {post.author_name}</Text>
<Timestamp time={post.publish_date.substring(10)} component={Text} format='date' />
</View>
</View>
);
}
render() {
return(
<ListView
dataSource={this.state.dataSource}
renderRow={this.renderRow.bind(this)}
style={styles.page}
/>
);
}
renderRow(post){
返回(
{post.title}
Por{post.author_name}
);
}
render(){
返回(
);
}
当我运行它时,会出现下一个错误:
我不知道我做错了什么,这对我来说是全新的。昨天我在尝试使用.replace(“”)时遇到了相同的错误,所以我放弃了,转而使用另一个解决方案。在这种情况下,我想我不能再做其他事情了。尝试记录您的post对象,看看是否定义了
“发布日期”
根据错误,传递给函数renderRow的对象post上没有
“publish\u date”
属性,因此,对子字符串的调用失败。尝试记录post对象,查看是否定义了“publish\u date”
根据错误,在传递给函数renderRow的对象post上没有
“publish\u date”
属性,因此,对子字符串的调用失败。好的,所以经过多次,没有得到答案,甚至在模块的Git中打开了一个问题,我决定继续查找
事实上,我的时间戳是以毫秒为单位的,当将它转换为毫秒时,过程中的某些东西使时间戳模块崩溃。所以,我决定放弃这个,用另一种方法
事情是这样的:
var datePosted = new Date(post.publish_date).toString();
现在我得到了正确的日期,而不需要外部模块。希望这对任何人都有帮助,但我认为世界上没有任何人像我一样面对这个问题。无论如何,谢谢大家。好的,所以经过很多时间,没有得到答案,甚至在模块的Git中打开了一个问题,我决定继续查找 事实上,我的时间戳是以毫秒为单位的,当将它转换为毫秒时,过程中的某些东西使时间戳模块崩溃。所以,我决定放弃这个,用另一种方法 事情是这样的:
var datePosted = new Date(post.publish_date).toString();
现在我得到了正确的日期,而不需要外部模块。希望这对任何人都有帮助,但我认为世界上没有任何人像我一样面对这个问题。无论如何,谢谢大家。如果我删除子字符串函数,我会得到一个时间戳,因此,publish\u date变量包含一些内容。问题是它包含3个额外的数字,所以如果我把它转换成一个普通的日期格式,我会得到一个4000年左右的日期。这就是为什么我想使用substring函数。我认为错误来自其他方面,因为正如我所说的,我试图用一个简单的字符串来使用replace函数,结果得到了完全相同的错误。无论如何,谢谢。额外的三位数字,我觉得你得到的是以毫秒为单位的时间戳,而不是以秒为单位尝试将时间戳除以1000,然后将其转换为日期,我认为你应该得到一个正确的日期。我更新了我的代码,我添加了:
var date=post.publish\u date;日期=日期/1000代码>现在我得到了这个错误:“null不是一个对象(计算'date.split')”。我真的很沮丧,这真的很令人沮丧。尝试删除所有时间戳组件并记录所有post.publish\u日期,查看是否所有post都具有该属性。如果没有,则仅为定义该属性的post显示时间戳。我认为这与我如何在React组件中实现javascript功能有关,因为我无法以我尝试过的任何方式实现这一点。正如我之前说过的,它与API提供的信息无关。谢谢你抽出时间!:)如果删除substring函数,就会得到一个时间戳,因此,publish_date变量包含一些内容。问题是它包含3个额外的数字,所以如果我把它转换成一个普通的日期格式,我会得到一个4000年左右的日期。这就是为什么我想使用substring函数。我认为错误来自其他方面,因为正如我所说的,我试图用一个简单的字符串来使用replace函数,结果得到了完全相同的错误。无论如何,谢谢。额外的三位数字,我觉得你得到的是以毫秒为单位的时间戳,而不是以秒为单位尝试将时间戳除以1000,然后将其转换为日期,我认为你应该得到一个正确的日期。我更新了我的代码,我添加了:var date=post.publish\u date;日期=日期/1000代码>现在我得到了这个错误:“null不是一个对象(计算'date.split')”。我真的很沮丧,这真的很令人沮丧。尝试删除所有时间戳组件并记录所有post.publish\u日期,查看是否所有post都具有该属性。如果没有,则仅为定义该属性的post显示时间戳。我认为这与我如何在React组件中实现javascript功能有关,因为我无法以我尝试过的任何方式实现这一点。正如我之前说过的,它与API提供的信息无关。谢谢你抽出时间!:)好吧,我花了很多时间在这方面,得到了一些不同的结果。我想问题可能直接出在时间戳模块上