【发布时间】:2018-01-07 16:44:14
【问题描述】:
我遇到了组件在遵循其路线后未呈现的问题。路由在父组件Drawings 中创建,并向Drawing 组件发送几个道具。
当我单击链接时,我会到达正确的路径,例如 /drawing/20170724,并且我在 render 函数中的日志语句会运行。我也得到了道具,到目前为止一切都很好。但是,返回没有发生,所以我需要的 HTML 不可用。
这里是Drawings 创建路由和链接的地方:
import React, { Component } from "react";
import { Route, Link } from "react-router-dom";
import AnimatedWrapper from "../modules/AnimatedWrapper";
import Drawing from '../components/Drawing';
class DrawingsComponent extends Component {
render() {
const drawings = this.props.drawings;
const drawingsMap = this.props.drawingsMap;
return(
<div>
<div className="page">
<div className="drawings-list">
{
drawings.map((drawing) => {
return(
<Link to={`/drawing/${drawing.date}`} key={drawing.date}>
<div className="drawing-thumb">
<h2>{drawing.date}</h2>
</div>
</Link>
)
})
}
</div>
{
Object.keys(drawingsMap).map((d, i) => {
return <Route path={`/drawing/${drawings[i].date}`} render={(props) => (<Drawing drawingPkg={drawingsMap[d]} drawingInfo={drawings[i]} {...props} />)} key={`${drawings[i].date}`}/>
})}
</div>
</div>
)
}
}
const Drawings = AnimatedWrapper(DrawingsComponent);
export default Drawings;
这里是Drawing:
import React, { Component } from 'react';
import AnimatedWrapper from "../modules/AnimatedWrapper";
class DrawingComponent extends Component {
render() {
const drawing = this.props.drawingPkg;
const drawingInfo = this.props.drawingInfo;
console.log('gonna draw now');
return(
<div className="drawing">
<h2 className="drawing-title">{drawingInfo.title}</h2>
<canvas></canvas>
</div>
)
}
}
const Drawing = AnimatedWrapper(DrawingComponent);
export default Drawing;
我不知道为什么绘图组件没有返回。
【问题讨论】:
-
控制台错误会帮助其他人更快地了解您的情况吗?请帮忙提供。
-
对不起,没有控制台错误——一切似乎都运行良好。我在控制台中单击
DrawingComponent中的链接和我的日志语句“现在开始绘制”,但返回语句似乎从未运行,因为应该返回的 HTML 不存在于 DOM 中。
标签: javascript reactjs react-router-v4