Я новичок в React, и я продолжаю получать эту ошибку, попробовал несколько предложений, которые я нашел, но ни один, похоже, не работал для меня. Я предполагаю, что ошибка связана со способом компиляции реакции. Это просто похоже, не находит мой идентификатор "символа" в методе рендеринга. Заранее спасибо за помощь.
Моя ошибка
App.js: 101 Uncaught TypeError: невозможно прочитать значение свойства null
at App.registerTrade (App.js:101)
at App.render (App.js:137)
at ReactCompositeComponent.js:793
at measureLifeCyclePerf (ReactCompositeComponent.js:73)
at ReactCompositeComponentWrapper._renderValidatedComponentWithoutOwnerOrContext (ReactCompositeComponent.js:792)
at ReactCompositeComponentWrapper._renderValidatedComponent (ReactCompositeComponent.js:819)
at ReactCompositeComponentWrapper.performInitialMount (ReactCompositeComponent.js:359)
at ReactCompositeComponentWrapper.mountComponent (ReactCompositeComponent.js:255)
at Object.mountComponent (ReactReconciler.js:43)
at ReactCompositeComponentWrapper.performInitialMount (ReactCompositeComponent.js:368)
Вот моя функция
registerTrade() {
var contract = require('truffle-contract')
var tradeRegistry = contract(tradeRegistryContract);
var self = this;
var amount = parseInt(document.getElementById("amount")).value;
var symbol = document.getElementById("symbol").value;
this.setStatus("Registering trade... (please wait)");
var meta;
tradeRegistry.deployed().then(function(instance) {
meta = instance;
return meta.registerSale(amount, symbol);
}).then(function() {
self.setStatus("Trade registered!");
}).catch(function(e) {
console.info(e);
self.setStatus("Error registering trade; see log.");
});
}
метод рендеринга React
render() {
return (
<div className = "App">
<nav className = "navbar pure-menu pure-menu-horizontal">
<a href = "#" className = "pure-menu-heading pure-menu-link">Trade Registry</a>
</nav>
<main className = "container">
<div className = "pure-g">
<div className = "pure-u-1-1">
<h1>Welcome</h1>
<br></br>
<h3>Register your trade</h3>
<br></br><label for = "amount">Amount:</label><input type = "text" id = "amount" placeholder = "e.g., $420"></input>
<br></br><label for = "symbol">Symbol:</label><input type = "text" id = "symbol" placeholder = "e.g., TSLA"></input>
<br></br><button id = "send" onClick = {this.registerTrade()}>Register Trade</button>
<br></br>
<span id = "status"></span>
<br></br>
<br></br>
<span id = "block"></span>
<br></br>
<span id = "evntAddress"></span>
<span id = "evntAmt"></span>
<span id = "evntSymbol"></span>
</div>
</div>
</main>
</div>
);
}



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я думаю, вы разбираете элемент dom вместо значения. Пытаться:
var amount = parseInt(document.getElementById("amount").value, 10);
Итак, я нашел свой ответ, мне пришлось объявить переменные состояния, а затем вызвать их из моих элементов html, например.
constructor(props) {
super(props)
this.state = {
inputAmt: '',
inputSym: ''
}
<br></br><label htmlFor = "amount">Amount:</label><input value = {this.state.inputAmt} onChange = {amt => this.updateInputAmt(amt)} type = "text" id='amount' placeholder = "e.g., $420" />
<br></br><label htmlFor = "symbol">Symbol:</label><input value = {this.state.inputSym} onChange = {sym => this.updateInputSym(sym)} type = "text" id='symbol' placeholder = "e.g., TSLA" />
Тай очень хотел бы получить быстрый ответ, но в настоящее время моя ошибка связана с этой строкой: <br> </br> <label for = "symbol"> Symbol: </label> <input type = "text" id = "symbol" placeholder = "например, TSLA"> </input> Извините, если мой вопрос не был достаточно конкретным для редактирования для этого.