【发布时间】:2019-12-21 13:39:18
【问题描述】:
我在主视图中有一个图像库,我希望能够单击每个图像以打开一个新的子视图以显示详细信息(例如图像标题等文本)。我的硬编码版本——图像和文本存储在前端——有效。但是当我将数据存储在 MySQL 数据库中时,我遇到了一个问题——例如,单击图像时无法深入了解细节。
数据似乎从后端正确获取到前端,因为画廊的图像正在显示。在我看来,区别(硬编码版本和数据库连接版本之间)主要在于反应路由器 v4 的设置,可能是阻止路径匹配或阻止数据传递到子视图的语法问题:
ReactDOM.render(
..
<Route path="/articles/:PostId" render={(props) => (<Post articles={this.state.blurbs} {...props} />)} />
当涉及到错误时,我会收到不同的消息,具体取决于浏览器: 一个说 “TypeError:无法获取未定义或空引用的属性‘模糊’;” 其他 说 "TypeError: this.state 未定义"
为简洁起见,我的数组状态是这样初始化的:
class App extends React.Component
..
this.state = {
blurbs: []
}
数组状态的值是这样更新的:
componentDidMount()
..
let self = this;
..
return response.json();
...
.then(function(data) {
self.setState({blurbs: data});
})
在子组件中,数据是根据数据库中的唯一ID呈现的:
render
..
return
..
{this.props.articles[this.props.match.params.PostId].Title}
所以回过头来,假设以上所有内容都有意义,react router 中的语法有什么问题? tia
【问题讨论】:
标签: mysql react-router-v4