【问题标题】:React Drizzle ContractForm interacting with method with multiple parametersReact Drizzle ContractForm 与具有多个参数的方法交互
【发布时间】:2020-09-18 06:29:01
【问题描述】:

我想使用 React Drizzle 合同表单来显示一个可以采用多个数据元素的表单,即显示一个输入框来输入姓名和国籍。所以这是一个简单的例子,稍微扩展了 drizzle unbox react 例子中的 set 和 get 方法,它只是获取和设置一个变量。可以在这里https://github.com/truffle-box/react-box

我的智能合约是..

pragma solidity 0.5.16;

contract PersonContract {

    uint256 public peopleCount = 0;
    mapping(uint => Person) public people;

    struct Person {
        uint256 _id;
        string _firstname;
        string _lastname;
      }

    function addPerson(string memory _firstname, string memory _lastname) public{
        incrementPeopleCount();
        people[peopleCount] = Person(peopleCount, _firstname, _lastname);
    }

    function incrementPeopleCount() internal {
        peopleCount +=1;
    }
}

我在 MyComponent 中的 React 代码是 ...

  <div className="section">
    <h2>Person Contract</h2>
    <p>
    <ContractData
        drizzle={drizzle}
        drizzleState={drizzleState}
        contract="PersonContract"
        method="Person"
    />
    </p>
    <ContractForm drizzle={drizzle} contract="PersonContractTwo" method="addPerson" />
  </div>

当我运行此代码时,ContractData 和 ContractForm 都出现错误。

对于我得到的 ContractForm ...

drizzle-react-components.js:392 Uncaught TypeError: Cannot read property 'methods' of undefined

对于 ContractForm 我得到 ..

index.js:1406 uncaught at initializeDrizzle TypeError: Cannot read property 'abi' of undefined

谁能告诉我我做错了什么或指出任何涉及涉及多个输入元素的 Drizzle 合同表单的代码示例的方向。非常感谢。

【问题讨论】:

    标签: reactjs drizzle


    【解决方案1】:

    看起来你错过了编译和部署合约。

    松露编译 && 松露迁移

    将编译和部署你的合约

    【讨论】:

      猜你喜欢
      • 2020-07-14
      • 2020-04-26
      • 2018-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-29
      相关资源
      最近更新 更多