Я попытался вызвать функцию в реакции от контракта на солидность и зарегистрировал результат (возвращая массив или отображение в солидности) в консоли.
import React, {Component} from "react";
class Select extends Component {
constructor(props) {
super(props);
this.state = this.props.data;
}
getSuppliers = async (event) => {
const { accounts, contract, productId } = this.state;
await contract.methods.getSuppliersOfProduct(productId).call({ from: accounts[0] }, (err,result) => {
if(err){
console.log("Error at product: ", err);
}
else {
console.log("Result: ", result);
}
});
}
changeHandler = (event) => {
const { name, value } = event.target;
this.setState({ [name]: value });
};
render() {
return(
<div className="App">
<input
name="productId"
value={this.state.productId}
onChange={this.changeHandler}
placeholder="Product ID"
/>
<button onClick={this.getSuppliers}>Get Suppliers</button>
<br />
<h1>{this.state.productId}</h1>
</div>
);
}
}
export default Select;
Я ожидал вернуть «результат» из «getSuppliers» () "функционирует как массив из 4 адресов, но возвращает только массив из 2, то есть первый и последний элемент возвращаемого массива.