1
我有一種情況,點擊div元素時,瀏覽器應導航到不同的頁面。在此事件的onClick中,我更改狀態變量的值,並在鏈接標記中將值傳遞給下一個組件。鏈接到不反應工作
的代碼是像這個 -
import React from 'react';
import ReactDom from 'react-dom' ;
import $ from 'jquery' ;
import {Switch, BrowserRouter as Router,Route,Link} from 'react-router-dom'
import {FullBlog} from './FullBlog.js'
class Author extends React.Component{
constructor(props){
super(props);
this.state={
data:this.props.data,
}
this.loadBlog=this.loadBlog.bind(this);
}
loadBlog(i){
var data=this.state.data[i];
this.setState({
data:data,
})
}
render(){
let content=(<p></p>);
//console.log(this.state.data);
var data=this.state.data;
content=(
<div>
<Link to={'/fullblog/${data}'} /><div onClick={this.loadBlog.bind(this,this.props.i)} className="box">
<div>{this.props.i}</div>
<div>{this.props.data.Author}</div>
<div>{this.props.data.Book}</div>
</div>
</div>
)
return content;
}
}
出於同樣的父類是這樣
import React from 'react'
import ReactDOM from 'react-dom'
import {ExpenseApp} from './expense-app.js'
import {Switch, BrowserRouter as Router,Route,hashHistory} from 'react-router-dom'
import {FullBlog} from './FullBlog.js'
class App extends React.Component{
render(){
return(
<Router>
<div>
<Route path='/' render={()=><ExpenseApp data={data}/>}/>
<Route path='/fullblog' component={FullBlog}/>
</div>
</Router>
)
}
}
ReactDOM.render(<App/>, document.getElementById('container'))
如果我必須使用browserhistory作爲我正在嘗試實現一個動態的Web應用程序,那麼我該如何傳遞歷史記錄? – Aayushi
和你是什麼意思的模板文字 – Aayushi
爲什麼你想傳遞歷史,如果是實現動態路由,你可以看到這個例子https://stackoverflow.com/questions/44127739/programatically-routing-based-on- a-condition-with-react-router/44128108#44128108請參閱此模板文字https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Template_literals –