Dapp kann keine Zeichenfolge abrufen

Irgendwie bekomme ich kein Ergebnis von meiner Backend-Solidität. Ich habe ein einfaches Dapp, das firstName aus dem Eingabefeld in der Blockchain speichert und es dann zurückholt und auf dem Bildschirm anzeigt.

state={

fName:"",
firstName:"",

}


handleSubmit = async (event)=>{
    event.preventDefault();
    await this.simpleStorageInstance.set(this.state.fName, { from: this.state.account });
    //let name = this.simpleStorageInstance.get.call(this.state.account);

    this.simpleStorageInstance.get({ from: this.state.account }, function (error, result) {
        var name = result;
        this.setState({ firstName: name });


    })

doChange = (e)=>{
this.setState({fName:e.target.value});

}

render(<div> <form onSubmit={this.handleSubmit}>

<input type="text" name="firsName" onChange={this.doChange}/>
<input type="submit"/></form>

<p>{this.state.firstName}</p></div>);

pragma solidity 0.4.24;

contract SimpleStorage {
    string firstName;

    function set(string x) public {
        firstName = x;
    }

    function get() public view returns (string) {
        return firstName;
    }
}

Ich bekomme auch diesen Fehler:

Nicht erfasster (versprochener) Fehler: Ungültige Anzahl von Argumenten für Solidity-Funktion bei Object.InvalidNumberOfSolidityArgs (errors.js:25) bei SolidityFunction../node_modules/web3/lib/web3/function.js.SolidityFunction.validateArgs (function.js: 74) bei SolidityFunction../node_modules/web3/lib/web3/function.js.SolidityFunction.toPayload (function.js:90) bei SolidityFunction../node_modules/web3/lib/web3/function.js.SolidityFunction.call ( function.js:131) bei contract.js:135 bei new Promise () bei contract.js:126

Antworten (1)

this.simpleStorageInstance.get({ from: this.state.account }

{ from: this.state.account }Dies muss beim Aufrufen einer getFunktion nicht übergeben werden.

Lesen Sie dieses Lernprogramm, um den Unterschied zwischen schreibgeschützten Aufrufen und potenziell zustandsändernden Transaktionen zu verstehen.

Sehen Sie sich dieses Tutorial an, in dem ein ähnliches Beispiel, das Sie zu entwickeln versuchen, erklärt wird.