Uncaught TypeError: невозможно прочитать значение свойства null в React

Я новичок в 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>     

      );
   }
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
1 025
2

Ответы 2

Я думаю, вы разбираете элемент dom вместо значения. Пытаться:

var amount = parseInt(document.getElementById("amount").value, 10);

Тай очень хотел бы получить быстрый ответ, но в настоящее время моя ошибка связана с этой строкой: <br> </br> <label for = "symbol"> Symbol: </label> <input type = "text" id = "symbol" placeholder = "например, TSLA"> </input> Извините, если мой вопрос не был достаточно конкретным для редактирования для этого.

Juan B Santana 29.03.2018 23:09

Итак, я нашел свой ответ, мне пришлось объявить переменные состояния, а затем вызвать их из моих элементов 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" />

Другие вопросы по теме