我正在使用ReactJs。我有两个组件,PrescriptionIndex和PrescriptionNew,将一个组件与另一个组合。
这是我的第一个组件'PrescriptionNew'
import React, { Component } from 'react';
import FloatingActionButton from 'material-ui/FloatingActionButton';
import ContentAdd from 'material-ui/svg-icons/content/add';
import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider'
class PrescriptionNew extends Component {
render(){
return(
<div>
<MuiThemeProvider>
<FloatingActionButton mini={true} style={{"color": "pink"}}>
<ContentAdd/>
</FloatingActionButton>
</MuiThemeProvider>
</div>
)
}
}
export default PrescriptionNew;
这是我的另一个组件“PrescriptionIndex”
import React , { Component } from 'react';
import { connect } from "react-redux";
import { fetchPrescriptionFromUrl } from '../actions/index.js';
import { Link } from 'react-router';
import PrescriptionNew from './new.jsx';
import '../app.css';
class PrescriptionIndex extends Component {
componentDidMount(){
this.props.fetchData(PORT+'/prescriptions');
}
render() {
if (this.props.has_error){
return(<p> Fetching an Api results in error</p>)
}
if (this.props.has_loading){
return(<p> Loading...</p>)
}
if (this.props.prescriptions.prescriptions !== undefined) {
return this.props.prescriptions.prescriptions.map(function(data){
return (
<div className="image-prescription" key={data.id}>
<Link to={"/update/" + data.id} >
<img src={data.image_path.image_path.url}
className="prescription-image"
alt="prescription"
/>
</Link>
</div>
);
});
} else {
return null;
}
return(
<div>
<PrescriptionNew /> //this is where I need my another component
</div>
)
}
}
export default PrescriptionIndex;
在运行时,“PrescriptionNew”组件不可见。在检查控制台时,警告被称为“无法访问的代码”。我已经浏览了其他solutions,但我无法研究我的代码中是否出错。
答案 0 :(得分:4)
您的代码目前正在
if (X)
return A
else
return B
return C
当然C
无法访问。我认为您打算放弃当前正在返回B
的其他情况(null
),并返回C
而不是它。
if (this.props.prescriptions.prescriptions !== undefined) {
return this.props.prescriptions.prescriptions.map(function(data){
return (
<div className="image-prescription" key={data.id}>
<Link to={"/update/" + data.id} >
<img src={data.image_path.image_path.url}
className="prescription-image"
alt="prescription"
/>
</Link>
</div>
);
});
} else {
// return null; <== remove this
return (
<div>
<PrescriptionNew />
</div>
)
}
答案 1 :(得分:1)
原因很简单,你有一个if-else,你从两个都返回,所以代码的最后一部分是无法访问的
你可能想要这个
href