【发布时间】:2017-06-23 08:37:12
【问题描述】:
我的 reactjs 代码出现问题,我试图将一些道具从数组传递到类,但它给了我一个未定义的错误。
FAQ.js
import React from "react";
import Accordions from '../components/Parts/Accordions';
import ApplyingWithUs from '../components/Parts/ApplyingWithUs';
...
export default class FAQ extends React.Component {
render() {
...
return (
<div>
<div className="container">
<h1>Frequently Asked Questions</h1>
<p> </p>
<h4>The Basics</h4>
<Accordions TheBasics={TheBasics}/>
<h4>Appling With Us</h4>
<ApplyingWithUs ApplyingWithUsDetails={ApplyingWithUsDetails}/>
</div>
</div>
);
}
}
我已经删除了数组,因为它们很长并且不会导致问题
Accordions.js
import React from 'react';
import Accordion from './Accordion';
export default class Accordions extends React.Component {
render(){
return(
<ul style={{listStyleType:"none"}}>
{this.props.TheBasics.map((basics)=> {
return <Accordion basics={basics} key={basics.id} />
})}
</ul>
);
}
}
Accordion.js 表示错误在 {this.state.active ? “▼”:“►”} {this.props.awu.summary} 即使我通过与 {this.state.active 相同的所有内容? "▼" : "►"} {this.props.basics.summary} 只是名称不同导致它从中提取数据的数组不同
import React from 'react';
const styles = {
active: {
display: 'inherit',
},
inactive: {
display: 'none',
}
};
export default class Accordion extends React.Component {
constructor(){
super();
this.state = {
active: false
};
this.toggle = this.toggle.bind(this);
}
toggle(){
this.setState({
active: !this.state.active
});
}
render(){
const stateStyle = this.state.active ? styles.active :
styles.inactive;
const hand = {
cursor:"pointer",
}
return (
<li>
<p onClick={this.toggle} style={hand}>
{this.state.active ? "▼" : "►"}
{this.props.basics.summary}
</p>
<p style={stateStyle}>
{this.props.basics.details}
</p>
<p onClick={this.toggle} style={hand}>
{this.state.active ? "▼" : "►"}
{this.props.awu.summary}
</p>
<p style={stateStyle}>
{this.props.awu.details}
</p>
</li>
)
}
}
ApplyingWithUs.js
import React from 'react';
import Accordion from './Accordion';
export default class ApplyingWithUs extends React.Component {
render(){
return(
<ul style={{listStyleType:"none"}}>
{this.props.ApplyingWithUsDetails.map((awu)=> {
return <Accordion awu={awu} key={awu.id} />
})}
</ul>
);
}
}
请帮帮我。
【问题讨论】:
-
@TeaTime 在 {this.state.active ? "▼" : "►"} {this.props.awu.summary} 不是在手风琴.js 文件上工作的基础
-
错误堆栈跟踪在哪里?
-
在
Accordion你有 propawu但是你在哪里发送 propbasics? -
@Andrew 我在 Accordions.js 中添加了基础知识
标签: javascript html css reactjs jsx