Reputation:
I am getting value from form in ReactJS but in meantime when I click on submit button it give me error TypeError: Cannot read property 'value' of undefined
. Could someone Please check what problem I may face .
Thanks
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;
Upvotes: 3
Views: 936
Reputation: 172
Complete code for this
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;
Upvotes: 0
Reputation: 5957
If you're using refs it should be this:
const storeName = this.myInput.current.value;
Upvotes: 4