Javascript 提取道具中的对象
这在我的Javascript 提取道具中的对象,javascript,arrays,json,reactjs,Javascript,Arrays,Json,Reactjs,这在我的渲染中 const { thumbnail, loading, key } = this.props.video.video; console.log(this.props.video.video); 这是我的输出 我想从对象数组中提取缩略图。但例如,如果我执行this.props.video.video[0]操作,它会返回未定义的值吗?最后,我计划使用缩略图传递到另一个组件,如下所示 videoContent = <TileFeed thumbnail={thumbna
渲染中
const { thumbnail, loading, key } = this.props.video.video;
console.log(this.props.video.video);
这是我的输出
我想从对象数组中提取缩略图。但例如,如果我执行this.props.video.video[0]
操作,它会返回未定义的值吗?最后,我计划使用缩略图传递到另一个组件,如下所示
videoContent = <TileFeed thumbnail={thumbnail} />;
videoContent=;
因为道具可能未定义,在渲染时
const RenderVideos = (props) => {
if(props.videos===undefined ){
return <div>Loading..</div>
}else{
return props.videos.map((item)=> <TileFeed thumbnail={item.thumbnail} />)
}
}
...
render(){
return (
<div>
<RenderVideos videos={this.props.video.video}/>
</div>
)
}
const RenderVideos=(道具)=>{
如果(道具视频===未定义){
返回装载。。
}否则{
返回道具.视频.地图((项)=>)
}
}
...
render(){
返回(
)
}
我认为您分析了错误的数组对象,请映射该对象以查看您有什么?
试试这个:
this.props.video.video.map((item)=>{
console.log(item);
});
类扩展组件{
componentDidMount(){
this.props.getVideos();
}
render(){
const{videos,loading,key}=this.props.videos;
让视频内容;
如果(视频===null | |加载){
视频内容=;
}否则{
视频内容=;
}
console.log({videoContent});
返回(
{videoContent}
);
}
}
Explore.propTypes={
getVideos:PropTypes.func.isRequired,
auth:PropTypes.object.isRequired,
配置文件:PropTypes.object.isRequired,
视频:PropTypes.object.isRequired
};
常量mapStateToProps=状态=>({
profile:state.profile,
auth:state.auth,
视频:state.videos
});
我对PropTypes有一些问题,我想把它扔掉,因为在配置了这个后它现在可以工作了const{缩略图,loading,key}=this.props.video.video有什么问题代码>?此.props.video.video.video[0]。应该是。正如我看到的控制台日志一样,如何从数组中获取这些项<代码>常量{缩略图,加载,键}=this.props.video.video代码>我的意思是它是一个列表。如果没有父级,则无法呈现列表<代码>返回此.props.video.video.map((项目)=>;)将此内容包装成
可能会添加一些小的解释,即使代码是解释性的
class Explore extends Component {
componentDidMount() {
this.props.getVideos();
}
render() {
const { videos, loading, key } = this.props.videos;
let videoContent;
if (videos === null || loading) {
videoContent = <Spinner />;
} else {
videoContent = <TileFeed thumbnail={videos} />;
}
console.log({ videoContent });
return (
<div className="explore">
<div className="row">{videoContent} </div>
</div>
);
}
}
Explore.propTypes = {
getVideos: PropTypes.func.isRequired,
auth: PropTypes.object.isRequired,
profile: PropTypes.object.isRequired,
videos: PropTypes.object.isRequired
};
const mapStateToProps = state => ({
profile: state.profile,
auth: state.auth,
videos: state.videos
});