Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 未处理的拒绝(TypeError):SimpleContact.methods.set不是函数_Reactjs_Merge_Frontend_Solidity_Smartcontracts - Fatal编程技术网

Reactjs 未处理的拒绝(TypeError):SimpleContact.methods.set不是函数

Reactjs 未处理的拒绝(TypeError):SimpleContact.methods.set不是函数,reactjs,merge,frontend,solidity,smartcontracts,Reactjs,Merge,Frontend,Solidity,Smartcontracts,我正在尝试构建一个学生管理系统Dapp,其中学生的数据从前端获取并存储在智能合约中。为什么在尝试设置字段名的值(名称)时出现此错误。我需要进行哪些更改?下面是我的代码,请检查有什么问题。 下面是我的App.js代码 App.js import React, { useState } from 'react'; import Web3 from 'web3'; import { simpleStorageAbi } from './abi/abis'; import './App.css'; co

我正在尝试构建一个学生管理系统Dapp,其中学生的数据从前端获取并存储在智能合约中。为什么在尝试设置字段名的值(名称)时出现此错误。我需要进行哪些更改?下面是我的代码,请检查有什么问题。 下面是我的App.js代码

App.js

import React, { useState } from 'react';
import Web3 from 'web3';
import { simpleStorageAbi } from './abi/abis';
import './App.css';
const web3 = new Web3(Web3.givenProvider);
// contract address is provided by Truffle migration
const contractAddr = '0xd9145CCE52D386f254917e481eB44e9943F39138';
const SimpleContract = new web3.eth.Contract(simpleStorageAbi, contractAddr);
function App() {
  const [name, setName] = useState();
  const [getName, setGetName] = useState();

  //const [dept, setDept] = useState();
  //const [getDept, setGetDept] = useState();

  const handleSet = async (e) => {
    e.preventDefault();    
    const accounts = await window.ethereum.enable();
    const account = accounts[0];
    const gas = await SimpleContract.methods.set(name).estimateGas();
    const result = await SimpleContract.methods.set(name).send({
      from: account,
      gas 
    })
    console.log(result);
  }

  const handleGet = async (e) => {
    e.preventDefault();
    const result = await SimpleContract.methods.get().call();
    setGetName(result);
    console.log(result);
  }

return (
  <div className="App">
    <header className="App-header">
      <form onSubmit={handleSet}>
        <label>
          Name:
          <input 
            type="text"
            name="name"
            value={name}
            onChange={ e => setName(e.target.value) } />
        </label>
        <input type="submit" value="Set Name" />
      </form>
      <br/>
      <button
        onClick={handleGet}
        type="button" > 
        Get Name 
      </button>
      { getName }
    </header>
  </div>  
);
};
export default App;
import React,{useState}来自“React”;
从“Web3”导入Web3;
从“./abi/abis”导入{simplestrageabi};
导入“/App.css”;
const web3=新的web3(web3.givenProvider);
//合同地址由块菌迁移提供
const contractAddr='0xd9145CCE52D386f254917e481eB44e9943F39138';
const SimpleContract=新的web3.eth.Contract(simplestrageabi,contractAddr);
函数App(){
const[name,setName]=useState();
const[getName,setGetName]=useState();
//const[dept,setDept]=useState();
//常量[getDept,setGetDept]=useState();
常量handleSet=async(e)=>{
e、 预防默认值();
const accounts=wait window.ethereum.enable();
常量帐户=帐户[0];
const gas=wait SimpleContract.methods.set(name.estimateGas();
const result=wait SimpleContract.methods.set(name.send)({
发件人:账户,
煤气
})
控制台日志(结果);
}
const handleGet=async(e)=>{
e、 预防默认值();
const result=wait SimpleContract.methods.get().call();
setGetName(结果);
控制台日志(结果);
}
返回(
姓名:
setName(e.target.value)}/>

得名 {getName} ); }; 导出默认应用程序;
下面是我的坚固性代码。 simplestreage.sol

pragma solidity >=0.4.22 <0.9.0;
contract SimpleStorage{
    string name;
    string dept;
    uint phonenumber;
    string addresshome;
    string emailid;
    uint aadhar;
    string ipfshash1;
    string ipfshash2;
    string ipfshash3;
    string ipfshash4;
    constructor() public {
        phonenumber=0;
        aadhar=0;
        
    }
    
    function setname(string memory _name) public  returns(string memory){
        name=_name;
    }
    
    function getname() public view returns(string memory){
        return name;
    }
    function getdept(string memory _dept) public pure returns(string memory){
        return _dept;
    }
    
    function getphonenumber(uint _phonenumber) public pure returns(uint){
        return _phonenumber;
    }
    
    function getaddresshome(string memory _addresshome) public pure returns(string memory){
        return _addresshome;
    }
    
    function getemailid(string memory _emailid) public pure returns(string memory){
        return _emailid;
    }
    
    function getaadhar(uint _aadhar) public pure returns(uint){
        return _aadhar;
    }
}
pragma-solidity>=0.4.22