【发布时间】:2016-09-23 22:00:49
【问题描述】:
我有一个 React 有声读物搜索应用程序。它按作者姓氏从 Librivox 获取数据并显示书籍列表。列表中的每个项目都有一个链接,该链接又转到一个单独的完整图书数据组件,该组件显示 该特定书籍(或用户从列表中选择的任何书籍)的所有数据。
在我的一生中,我无法获取完整的数据组件来从 URL(路由)中获取图书 ID:
Link 使用的路由定义:
<Route path="/book/:id" component={BookDataDisplay}/>
BookListItem 组件(在 SearchResults 组件中)生成以下内容:
<p><Link to={"/book/" + bookObject.id}>DISPLAY FULL BOOK DATA</Link></p>
生成的实际链接:
http://jstest.dd:8083/react_librivox_search/book/3277
但是 BookDisplay 组件永远不会获取 this.props.params,它仍然是一个空对象。图书显示组件的 render() 方法已启用,但没有用于填充图书显示的数据,因为 this.props.params.id 变量从不从 URL 中获取“3277”id 编号(没有图书id,我无法抓取数据)。
知道可能出了什么问题。我一直想知道是否必须定义 PropTypes 或 ContextTypes 才能使参数传递起作用,但是我在文档中的任何地方都没有看到任何地方说明传递仍然有效,但是一旦您定义了 Route 和参数,它就会自动传递。
我正在使用 Redux,但我不认为这个问题与 redux 有任何关系,除非 redux 征用所有组件并使它们都依赖于更新 Redux 存储(我不会将整个书单发送到个人图书数据显示组件)。
【问题讨论】:
标签: reactjs hyperlink react-router