React: TypeError: Невозможно прочитать свойство 'значение' из неопределенного - PullRequest
0 голосов
/ 28 февраля 2019

Я получаю значение из формы в ReactJS, но в то же время, когда я нажимаю кнопку «Отправить», это выдает мне ошибку TypeError: Cannot read property 'value' of undefined.Может кто-нибудь, пожалуйста, проверьте, с какой проблемой я могу столкнуться.

Спасибо

import React, { Component } from 'react'
import { getFunName } from './helpers';

class StorePicker extends Component {
  myInput=React.createRef();

  goToStore=event=> {
    // 1- Stopping form from submitting
    event.preventDefault();

    // 2 - Getting value from Input
    const storeName = this.myInput.value.value ;

    // 3 - Change the page to /store/whatever-you-entered
    this.props.history.push(`/store/${storeName}`)
  }


  render() {
    return (
     <form className="store-selector" onSubmit={this.goToStore}>
     <h2>Please Enter Enter a Store</h2>
     <input type="text" required placeholder="Store Name" ref={this.myInput}  defaultValue={getFunName()}/>
     <button type="submit">Visit Store</button>
     </form>
    )
  }
}

export default StorePicker;

Ответы [ 2 ]

0 голосов
/ 03 сентября 2019

Полный код для этого

import React, {Fragment} from 'react';
import {getFunName} from "../helpers";

class StorePicker extends React.Component{

myInput = React.createRef();

goToStore = event =>{
    //1. Stop the from submitting
     event.preventDefault();

     //2. get the text from that input
     const storeName = this.myInput.current.value;

     //3. change the page to /store/store-name
     this.props.history.push(`/store/${storeName}`);
}

render(){
    return(
        <form className="store-selector" onSubmit={this.goToStore}>
            <h2>Please Enter a Store</h2>
            <input type="text" ref={this.myInput} required placeholder="Store Name"/>
            <button type="submit">Visit Store</button>
        </form>
    )
}
}

export default StorePicker;
0 голосов
/ 28 февраля 2019

Если вы используете ссылки, это должно быть так:

const storeName = this.myInput.current.value;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...