Я новичок в React. Я создал компонент класса и есть конструктор.
Я создал this.state внутри функции конструктора.
Вкл. componentDidMount
Я вызвал несколько функций, и в этих функциях создал const.
Могу ли я использовать this.setState({})
для тех переменных, которые объявлены вне конструктора и созданы и вызваны в функции componentDidMount()
?
Я получил ошибку, когда пытался использовать такие переменные в другой функции.
Мой код следующий:
class App extends Component {
constructor(props) {
super(props);
this.state = {
web3: null,
network: "",
account: 0x0
};
}
componentDidMount = async () => {
await this.loadWeb3();
};
loadWeb3 = async () => {
const web3 = await getWeb3();
const accounts = await web3.eth.getAccounts();
this.setState({ account: accounts[0] });
const networkId = await web3.eth.net.getId();
this.setState({ networkId });
this.setState({ web3 });
console.log(web3); //
console.log(networkId); //got sucessfully console log over here
await this.setNetwork();
};
setNetwork = async () => {
let networkName,
that = this;
await this.state.web3.eth.net.getNetworkType(function(err, network) {
switch (network) {
case "main":
networkName = "Main";
break;
case "morden":
networkName = "Morden";
break;
case "ropsten":
networkName = "Ropsten";
break;
case "private":
networkName = "Ganache";
break;
default:
networkName = this.state.networkId; //but got error over here "Unhandled Rejection (TypeError): Cannot read property 'state' of undefined"
}
that.setState({
network: networkName
});
console.log(this.state.network);
});
};
Я получил следующую ошибку в setNetwork ()регистр переключения по умолчанию
необработанное отклонение (TypeError): невозможно прочитать свойство 'состояние' из неопределенного