import React, { Component, Fragment } from "react"
class App extends Component {
constructor(props) {
super(props);
this.state = {
inputValue: '',
list: []
}
}
render() {
return (
<Fragment>
<div>
<label htmlFor="insertLabel">输入内容:</label>
<input value={this.state.inputValue}
id="insertLabel"
onChange={this.handleChange.bind(this)}
/><button onClick={this.handleClick.bind(this)}>提交</button>
</div>
<ul>
{/* 循环的内容 */}
{
this.state.list.map((item, index) => {
return (
<li key={index} onClick={this.handleItemDelete.bind(this, index)}
dangerouslySetInnerHTML={{__html: item}}></li>
)
})
}
</ul>
</Fragment>
)
}
handleChange(e) {
console.log(e.target.value)
console.log(this)
this.setState({
inputValue: e.target.value,
})
console.log(this.state)
}
handleClick() {
this.setState({
list: [...this.state.list, this.state.inputValue],
inputValue: ''
})
console.log(this.state)
}
handleItemDelete(index) {
console.log(index)
const list = [...this.state.list]
list.splice(index, 1)
this.setState({
list: list
})
}
}
export default App;
import React, {useState, useEffect, useRef, Fragment} from "react";
function App() {
const [inputValue, setInputValue] = useState(0)
const [list, setList] = useState([])
const initFormRef = useRef();
const handleInput = (e) => {
console.log(e.target.value)
setInputValue(e.target.value)
}
useEffect(() => {
initFormRef.current = list;
console.log(initFormRef.current)
}, [list]);
const handleClick = (e, value) => {
console.log(e)
console.log(value)
if(inputValue === '') {
return
}
setList([...list, inputValue])
console.log(list)
}
const handleItemDelete = (index) => {
console.log(index);
const listValue = [...list]
listValue.splice(index, 1)
setList([...listValue])
}
return (
<Fragment>
<div>
<label htmlFor="insertLabel">请输入内容:</label>
<input value={inputValue} onChange={(e) => handleInput(e)}/><button onClick={(e) => handleClick(e, 'aa')}>提交</button>
<ul>
{
list.map((item, index) => {
return ( <li key={index}
onClick={() => handleItemDelete(index)}
dangerouslySetInnerHTML={{__html: item}}></li>)
})
}
</ul>
</div>
</Fragment>
);
}
export default App;