javascript - 链接到在 react 中不起作用

标签 javascript reactjs react-router reactive-programming

我遇到过这样的情况:单击 div 元素后,浏览器应导航到不同的页面。在此事件的 onClick 中,我更改了状态变量的值,并在 Link 标记中将这些值传递给下一个组件。

代码是这样的-

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'))

在此之后,我收到错误 errror

最佳答案

hashHistoryreact-router-dom 包 v4 及以上版本中不可用,已移至 history npm 包。但是,您可以使用 HashRouter 而不是 BrowserRouter

对于链接组件,如果您想传递动态值,请使用模板文字,而不是将值放在单引号内。

<Link to={`/fullblog/${this.props.data}`} />

使用模板文字时,如果{this.props.data}具有值foo,则链接路径将被评估为/fullblog/foo ,但是如果您使用单引号,您的路径将保留 /fullblog/${this.props.data}

关于javascript - 链接到在 react 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45255630/

相关文章:

css - Material ui 中的波纹影响用不同的颜色填充按钮

javascript - 如何使用服务在兄弟组件之间共享对象?

javascript - HTML5 Canvas drawImage 调整大小问题

javascript - 比较 URL 和链接

javascript - ReactJS 从另一个组件设置一个组件的状态

javascript - React - 请求取消页面更改

javascript - 如何在 JavaScript 中编写扩展方法?

android - 在 react-native 中管理堆栈的最佳导航方法是什么?

reactjs - 未捕获的类型错误 : Cannot read property 'mountComponent' of undefined error when running create-react-app build version

reactjs - Nextjs 如何将多个路由映射到一个页面?