Javascript 为什么可以';不可以读取属性映射吗?
我试图遍历一个对象数组,以显示某个名称的所有项。由于某种原因,无法读取我的Javascript 为什么可以';不可以读取属性映射吗?,javascript,reactjs,Javascript,Reactjs,我试图遍历一个对象数组,以显示某个名称的所有项。由于某种原因,无法读取我的this.props.list.items。任何帮助都将不胜感激 item.js的代码 import React from "react"; class Item extends React.Component{ render() { return( <div>{this.props.list.items}</div> ) } } export defau
this.props.list.items
。任何帮助都将不胜感激
item.js的代码
import React from "react";
class Item extends React.Component{
render() {
return(
<div>{this.props.list.items}</div>
)
}
}
export default Item
从“React”导入React;
类项扩展了React.Component{
render(){
返回(
{this.props.list.items}
)
}
}
导出默认项
horizontalscroll.js的代码
import React from 'react';
import ScrollMenu from 'react-horizontal-scrolling-menu';
import './horizontalscroll.css';
import Item from './Item';
// list of items
const list = [
{
name: "Brands",
items: ["1", "2", "3"]
},
{
name: "Films",
items: ["f1", "f2", "f3"]
},
{
name: "Holiday Destination",
items: ["f1", "f2", "f3"]
}
];
// One item component
// selected prop will be passed
const MenuItem = ({ text, selected }) => {
return (
<div
className="menu-item"
>
{text}
</div>
);
};
// All items component
// Important! add unique key
export const Menu = (list) => list.map(el => {
const { name } = el;
return (
<MenuItem
text={name}
key={name}
/>
);
});
const Arrow = ({ text, className }) => {
return (
<div
className={className}
>{text}</div>
);
};
const ArrowLeft = Arrow({ text: '<', className: 'arrow-prev' });
const ArrowRight = Arrow({ text: '>', className: 'arrow-next' });
class HorizantScroller extends React.Component {
state = {
selected: 0
};
onSelect = key => {
this.setState({ selected: key });
}
render() {
const { selected } = this.state;
// Create menu from items
const menu = Menu(list, selected);
return (
<div className="HorizantScroller">
<ScrollMenu
data={menu}
arrowLeft={ArrowLeft}
arrowRight={ArrowRight}
selected={selected}
onSelect={this.onSelect}
/>
<div>{this.props.items.map((item) => {
return <Item item={item}/>
})}
</div>
</div>
);
}
}
export default HorizantScroller;
从“React”导入React;
从“反应水平滚动菜单”导入滚动菜单;
导入“/horizontalcoll.css”;
从“./Item”导入项目;
//项目清单
常数列表=[
{
名称:“品牌”,
项目:[“1”、“2”、“3”]
},
{
名称:“电影”,
项目:[“f1”、“f2”、“f3”]
},
{
名称:“度假目的地”,
项目:[“f1”、“f2”、“f3”]
}
];
//一项组件
//选定的道具将被传递
常量菜单项=({text,selected})=>{
返回(
{text}
);
};
//所有项目组件
//重要!添加唯一密钥
导出常量菜单=(列表)=>list.map(el=>{
常数{name}=el;
返回(
);
});
常量箭头=({text,className})=>{
返回(
{text}
);
};
const ArrowLeft=Arrow({text:'',className:'Arrow next'});
类HorizantScroller扩展React.Component{
状态={
已选:0
};
onSelect=key=>{
this.setState({selected:key});
}
render(){
const{selected}=this.state;
//从项目创建菜单
常量菜单=菜单(列表,选中);
返回(
{this.props.items.map((item)=>{
回来
})}
);
}
}
导出默认水平滚动条;
在项目内部,您应该像这样访问它
<div>{this.props.item}</div>
{this.props.item}
因为在呈现项目时,您做了
,这应该可以完成任务。@JonathanPein您的代码有很多问题,我的答案只回答了其中的一部分。例如,您正在执行:const menu=menu(…)
这不应该是dong,您需要执行:
menu返回一个react元素,您正在将该元素作为数据道具传递给一个组件,我不明白您在项中的意思是什么?请您澄清一下,您还应该为您呈现的每个项目组件分配一个唯一的键。在地图中,您应该返回