Javascript 将动态添加的html列表项推送到最后一个数组中
如何将html推送到最后一个数组中。我正在尝试添加一个项目,并且应该立即添加到列表数组中。cod正在工作,但我正在努力将新列表添加到最后一个数组中Javascript 将动态添加的html列表项推送到最后一个数组中,javascript,reactjs,Javascript,Reactjs,如何将html推送到最后一个数组中。我正在尝试添加一个项目,并且应该立即添加到列表数组中。cod正在工作,但我正在努力将新列表添加到最后一个数组中 function addItem(id,name){ const array = JSON.parse(localStorage.getItem('categories')); array.push({ name: name, id:id,
function addItem(id,name){
const array = JSON.parse(localStorage.getItem('categories'));
array.push({
name: name,
id:id,
});
//<li>{name}</li> push this into last array
localStorage.setItem('categories',JSON.stringify(array));
}
{categories.map(function(item, key){
return <div>
<ul>
<li>item.name</li>
</ul>
<button onClick={() => addItem(item.id,'value name')}>Add</button>
</div>
})}
函数附加项(id、名称){
const array=JSON.parse(localStorage.getItem('categories');
array.push({
姓名:姓名,,
id:id,
});
//{name} 将其放入最后一个数组
setItem('categories',JSON.stringify(数组));
}
{categories.map(函数(项,键){
返回
- item.name
addItem(item.id,'value name')}>Add
})}
在您的示例中,有些地方看起来不对劲。我添加了一个完整的示例。您可以同时维护本地存储和状态。我希望这个例子能帮助你
您的错误是,在添加新项时,您正在将其推送到localStoage,因此react dom不会重新提交。你必须更新状态的值
类应用程序扩展了React.Component{
构造函数(){
超级();
此.state={
类别:[
{
姓名:“你好”,
身份证号码:1
},
{
名称:“世界”,
身份证号码:2
}
]
};
this.addItem=this.addItem.bind(this);
this.SaveToLocalStorage=this.SaveToLocalStorage.bind(this);
}
SaveToLocalStorage(){
const categories=this.state.categories;
setItem(“categories”,JSON.stringify(categories));
}
附加项(id、名称){
const categories=this.state.categories;
类别.推送({
姓名:姓名,,
id:id
});
this.setState({categories});
//setItem(“categories”,JSON.stringify(categories));
}
render(){
让categories=this.state.categories;
常量测试=categories.map(项=>(
{item.name}
));
返回(
{test}
this.addItem(Date.now(),“Item”)}>
单击以添加更多
this.SaveToLocalStorage()}>
保存到本地存储{“”}
);
}
}
ReactDOM.render( ,document.getElementById(“根”)代码>
在您的示例中,有些地方看起来不对劲。我添加了一个完整的示例。您可以同时维护本地存储和状态。我希望这个例子能帮助你
您的错误是,在添加新项时,您正在将其推送到localStoage,因此react dom不会重新提交。你必须更新状态的值
类应用程序扩展了React.Component{
构造函数(){
超级();
此.state={
类别:[
{
姓名:“你好”,
身份证号码:1
},
{
名称:“世界”,
身份证号码:2
}
]
};
this.addItem=this.addItem.bind(this);
this.SaveToLocalStorage=this.SaveToLocalStorage.bind(this);
}
SaveToLocalStorage(){
const categories=this.state.categories;
setItem(“categories”,JSON.stringify(categories));
}
附加项(id、名称){
const categories=this.state.categories;
类别.推送({
姓名:姓名,,
id:id
});
this.setState({categories});
//setItem(“categories”,JSON.stringify(categories));
}
render(){
让categories=this.state.categories;
常量测试=categories.map(项=>(
{item.name}
));
返回(
{test}
this.addItem(Date.now(),“Item”)}>
单击以添加更多
this.SaveToLocalStorage()}>
保存到本地存储{“”}
);
}
}
ReactDOM.render( ,document.getElementById(“根”)代码>
我想这就是你想要的。您只需将其设置为状态,并在尝试向列表/数组添加元素时重新渲染它。我不知道为什么要将其设置为本地存储,但如果您只想存储以前的阵列以备将来添加,则可以直接从状态进行设置
import React, { Component } from "react";
class App extends Component {
state = {};
constructor(props){
super(props);
this.state={
arr = []
}
}
addItem(id, name) {
const array = JSON.parse(localStorage.getItem("categories"));
array.push({
name: name,
id: id
});
//<li>{name}</li> push this into last array
localStorage.setItem("categories", JSON.stringify(array));
this.setState({arr:array});
}
renderList = () => {
return this.state.array.map(function(item, key) {
return (
<div>
<ul>
<li>item.name</li>
</ul>
<button onClick={() => addItem(item.id, "value name")}>Add</button>
</div>
);
});
};
render() {
return <div>{this.renderList()}</div>;
}
}
export default App;
import React,{Component}来自“React”;
类应用程序扩展组件{
状态={};
建造师(道具){
超级(道具);
这个州={
arr=[]
}
}
附加项(id、名称){
const array=JSON.parse(localStorage.getItem(“categories”);
array.push({
姓名:姓名,,
id:id
});
//{name} 将其放入最后一个数组
setItem(“categories”,JSON.stringify(数组));
this.setState({arr:array});
}
renderList=()=>{
返回this.state.array.map(函数(项,键){
返回(
- item.name
addItem(item.id,“值名称”)}>Add
);
});
};
render(){
返回{this.renderList()};
}
}
导出默认应用程序;
我想这就是你想要的。您只需将其设置为状态,并在尝试向列表/数组添加元素时重新渲染它。我不知道为什么要将其设置为本地存储,但如果您只想存储以前的阵列以备将来添加,则可以直接从状态进行设置
import React, { Component } from "react";
class App extends Component {
state = {};
constructor(props){
super(props);
this.state={
arr = []
}
}
addItem(id, name) {
const array = JSON.parse(localStorage.getItem("categories"));
array.push({
name: name,
id: id
});
//<li>{name}</li> push this into last array
localStorage.setItem("categories", JSON.stringify(array));
this.setState({arr:array});
}
renderList = () => {
return this.state.array.map(function(item, key) {
return (
<div>
<ul>
<li>item.name</li>
</ul>
<button onClick={() => addItem(item.id, "value name")}>Add</button>
</div>
);
});
};
render() {
return <div>{this.renderList()}</div>;
}
}
export default App;
import React,{Component}来自“React”;
类应用程序扩展组件{
状态={};
建造师(道具){
超级(道具);
这个州={
arr=[]
}
}
附加项(id、名称){
const array=JSON.parse(localStorage.getItem(“categories”);
array.push({
姓名:姓名,,
id:id
});
//{name} 将其放入最后一个数组
setItem(“categories”,JSON.stringify(数组));
this.setState({arr:array});
}
renderList=()=>{
返回this.state.array.map(函数(项,键){
返回(
- item.name
addItem(item.id,“值名称”)