I have a reactjs code adding forms on button click. Now I want to delete an individual form on remove button click in component. I have remove button in Test Component. The problem I am facing when I press any remove button all forms are deleted, I just want to delete a particular form.
App.js
import React, { Component } from 'react';
import logo from './logo.svg';
import './App.css';
import Test from './Test.js';
class App extends Component {
state={
numform: 0
}
Addform()
{
this.setState({
numform: this.state.numform + 1
});
}
render() {
const form = [];
for(var i=0;i<this.state.numform;i+=1)
{
form.push(<Test key={i}/>);
}
return(
<div className="App ">
<div className="App-header App-intro">
<button onClick={()=>this.Addform()}>+</button>
</div>
{form}
</div>
);
}
}
export default App;
Test.js
import React, { Component } from 'react';
import logo from './logo.svg';
class Test extends Component {
Removeform()
{
this.props.delete_this(this.props.key);
}
render() {
return(
<form>
<input type="text" name="i1"></input>
<input type="text" name="i2"></input>
<input type="submit" value="submit"></input>
<button value="Remove" onClick={()=>this.Removeform()}>Remove</button>
</form>
);
}
}
export default Test;
e.preventDefaultin your function. What is your intent. You just decrement a form one by one or do you want to delete a specific form here? If this is so, you can't create general forms, you need to use separate ones. Or you can index as @AbhaySehgal suggested but personally I don't like this approach.