2016-09-30 89 views
1

任何人都知道如何将对象传递给hashHistory.push()?如何在反应中将对象传递给hashHistory.push()

这里有一个代码片段:

redirectToDrug(id, drug) { 
    hashHistory.push(`/infusions/library/${id}`, drug); 
} 

试图在那里得到的药物信息,使我不必再在数据库中查询药物信息,因为我已经拥有它的父类。

回答

7

您可以通过对象与查询推功能:

router.push({ 
    pathname: `/infusions/library/${id}`, 
    query: { drug } 
}) 

然后访问/infusuons /库中的对象/ $ {ID}页:

this.props.location.query.drug 

Link to official docs

如果您的对象不是太复杂,这是很好的解决方案,但如果药物是一个很大的数据结构,我会使用单向数据流框架,例如Redux。如果您通过直接的目的,那么你就无法在另一个组件检索

var data = JSON.stringify(drug); 
hashHistory.push({pathname: `/infusions/library/${id}`, query: {data}}); 

+0

很酷,这绝对有效,但有没有另外一种方法来创建一个查询字符串添加到url?编辑:nvm只是做了状态而不是查询 –

1

您可以传递对象的JSON字符串作为。上面的解决方案为我工作。

相关问题