简体   繁体   English

单击按钮从一个页面导航到另一个页面

[英]Navigate from one page to another on Button click

Hey I'm trying to make a Student Management System, where I made a Login page,Signup and a Dashboard page.嘿,我正在尝试制作一个学生管理系统,在那里我制作了一个登录页面、注册和仪表板页面。 Now, while clicking a Button 'Fill Details' from my Dashboard page I need to navigate to another page input.js (Which is actually a separate project).现在,从我的仪表板页面单击“填充详细信息”按钮时,我需要导航到另一个页面 input.js(这实际上是一个单独的项目)。 I'll link my code below.我将在下面链接我的代码。 Please help me to make it!请帮我完成它!


  
  
  
//input.js
    import React, { Component } from 'react';
    import web3 from './web3';
    import ipfs from './ipfs';
    import storehash from './storehash';
    import { Button } from 'reactstrap';


    class MyComponent extends Component {
      state = {      
        ipfsHash:null,      
        buffer:'',      
        ethAddress:'',      
        transactionHash:'',      
        txReceipt: ''    
      };


      //Take file input from user
      captureFile =(event) => {event.stopPropagation() 
        event.preventDefault() 
        const file = event.target.files[0] 
        let reader = new window.FileReader() 
        reader.readAsArrayBuffer(file) 
        reader.onloadend = () => this.convertToBuffer(reader) };


      //Convert the file to buffer to store on IPFS 
          convertToBuffer = async(reader) => {

      //file is converted to a buffer for upload to IPFS        
          const buffer = await Buffer.from(reader.result);   

      //set this buffer-using es6 syntax        
           this.setState({buffer});};

      //ES6 async 
        functiononClick = async () => {try{this.setState({blockNumber:"waiting.."});        
        this.setState({gasUsed:"waiting..."});
        await web3.eth.getTransactionReceipt(this.state.transactionHash, (err, txReceipt)=>{          
          console.log(err,txReceipt);          
          this.setState({txReceipt});        
        });    
      }

      catch(error){      
        console.log(error);   
       }}


       onSubmit = async (event) => {      
         event.preventDefault();

         //bring in user's metamask account address      
         const accounts = await web3.eth.getAccounts();   

         //obtain contract address from storehash.js      
         const ethAddress= await storehash.options.address;      
         this.setState({ethAddress});    

         //save document to IPFS,return its hash#, and set hash# to state      
         await ipfs.add(this.state.buffer, (err, ipfsHash) => {        
           console.log(err,ipfsHash);        

           //setState by setting ipfsHash to ipfsHash[0].hash        
           this.setState({ ipfsHash:ipfsHash[0].hash });       
           
           
           // call Ethereum contract method "sendHash" and .send IPFS hash to etheruem contract       
          //return the transaction hash from the ethereum contract        
          storehash.methods.sendhash(this.state.ipfsHash).send({          
            from: accounts[0]        
          }, 
            (error, transactionHash) => {          
            console.log(transactionHash);          
            this.setState({transactionHash});        
          });  

          

        })    
      };


      render() {
        return (        
        <div className="App">          
        <header className="App-header">  
        <h1>EduDecentro</h1>          
        </header>

        <hr/>
        <grid>          
          <h5> Choose Transcript file  </h5>          
          <form onSubmit={this.onSubmit}>            
          <input              
          type = "file"              
          onChange = {this.captureFile}            
          />             
          <Button             
          bsStyle="primary"             
          type="submit">             
          Send it             
          </Button> 
          </form>
          <tbody>                 
             <tr>                   
               <td>IPFS Hash</td>                   
                <td> : </td>                    
                <td>{this.state.ipfsHash1}</td>                  
                </tr>
          </tbody>
          

          <h5> Choose Certificate-1 file  </h5>          
          <form onSubmit={this.onSubmit}>            
          <input              
          type = "file"              
          onChange = {this.captureFile}            
          />             
          <Button             
          bsStyle="primary"             
          type="submit">             
          Send it             
          </Button> 
          </form>
          <tbody>                 
             <tr>                   
               <td>IPFS Hash</td>                   
                <td> : </td>                    
                <td>{this.state.ipfsHash2}</td>                  
                </tr>
          </tbody>

          <h5> Choose Certificate-2 file  </h5>          
          <form onSubmit={this.onSubmit}>            
          <input              
          type = "file"              
          onChange = {this.captureFile}            
          />             
          <Button             
          bsStyle="primary"             
          type="submit">             
          Send it             
          </Button> 
          </form>

          <h5> Choose Resume file  </h5>          
          <form onSubmit={this.onSubmit}>            
          <input              
          type = "file"              
          onChange = {this.captureFile}            
          />             
          <Button             
          bsStyle="primary"             
          type="submit">             
          Send it             
          </Button> 
          

          </form><hr/> 
          </grid>     
        </div>      
       );    
    }}

     export default MyComponent;
    import React from 'react';


    import {Link } from "react-router-dom";

     
    function Dashboard(props) {
     
      // handle click event of logout button
      const handleLogout = () => {    
        props.history.push('/Sign-in');
      }

      
     
      return (
        <div>
          Welcome User!<br /><br />
          <Link to="/input"><button>
                  Fill Details 
                </button>
                </Link>

          <input type="button" onClick={handleLogout} value="Logout" />
        </div>
      );
    }
     
    export default Dashboard;

All you have to do is to add event listener for your Fill Details button, you don't need to wrap it into the Link component.您所要做的就是为您的“ Fill Details ”按钮添加事件侦听器,您无需将其包装到Link组件中。 Here is the example:这是示例:

<button onClick={() => window.location.href = 'YOUR_LINK_TO_ANOTHER_APP' }>
  Fill Details 
</button>
<button onClick="window.location.href='Second_App_Page_Link';">Click Here
</button>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 单击JavaScript按钮可导航到另一个HTML页面 - JavaScript button on click navigate to another HTML page 如何在 vuetify 中单击按钮导航到另一个页面? - How to navigate to another page on button click in vuetify? 单击html5中的按钮/链接时如何将一个页面导航到另一个页面 - how to navigate one page to another page when click on button/link in html5 使用angular2单击“提交”按钮时,从一页导航到另一页 - Navigate from one page to another page when submit button is clicked using angular2 如何使用Twitter Bootstrap按钮点击导航到另一个页面? - How do I navigate to another page on button click with Twitter Bootstrap? 单击一个组件以导航到另一个页面 - Click on a component to navigate to another page 从一个页面导航到另一个页面后脚本未加载 - script not loading after navigate from one page to another page nunjucks 从一个html页面导航到另一个html页面,但同时将它们保存在内存中 - navigate from one html page to another but keep them in memory both 如何在 React JS 中从一个页面导航到另一个页面? - how to navigate from one page to another in react js? 使用React Router在reactjs中从一页导航到另一页 - Navigate from one page to another in reactjs using react router
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM