Javascript 反应-正在进行排序,但第一个元素除外
我正在做添加列表和排序,但排序工作并不完美。 除了第一个元素外,它排序很好。 当我按顺序添加aa,bb,cc元素时,它应该按cc,bb,aa排序,但实际上 分类为aa、cc、bb。当我添加其他元素时,除了第一个元素“aa”外,它工作得很好 我为此工作了两天,但仍然不知道是什么问题。。。请帮帮我 我的排序函数是这样的Javascript 反应-正在进行排序,但第一个元素除外,javascript,reactjs,sorting,Javascript,Reactjs,Sorting,我正在做添加列表和排序,但排序工作并不完美。 除了第一个元素外,它排序很好。 当我按顺序添加aa,bb,cc元素时,它应该按cc,bb,aa排序,但实际上 分类为aa、cc、bb。当我添加其他元素时,除了第一个元素“aa”外,它工作得很好 我为此工作了两天,但仍然不知道是什么问题。。。请帮帮我 我的排序函数是这样的 handleList=()=>{ const{information}=this.state; 信息排序((a,b)=>(a.name>b.name?-1:1)); 这是我的国家(
handleList=()=>{
const{information}=this.state;
信息排序((a,b)=>(a.name>b.name?-1:1));
这是我的国家({
信息:信息,,
});
};
我的状态和handleCreate函数
id=0;
状态={
排序状态:false,
资料:[],
};
handleCreate=(数据)=>{
const{information}=this.state;
这是我的国家({
信息:information.concat({id:this.id++,…data}),
});
};
渲染
render(){
const{information}=this.state;
返回(
分类
);
}
问题在于
handleSubmit
函数。将状态字段的初始值更改为”
,而不是”
。例如:
handleSubmit = (e) => {
e.preventDefault();
this.props.onCreate(this.state);
this.setState({
name: "",
phone: "",
date: ""
});
};
代码所做的是在名称字符串的开头添加一个空格。然后,在排序时,它会将以空格开头的项目排序到第一个不以空格开头的项目之后
因此,这应该可以解决您的问题。您应该创建一个最小的可复制示例(最好是在@hgb123上)@hgb123谢谢我只是添加了代码沙盒链接您能解释一下使用trim的区别吗?我的输入基本上是空白的吗?第一项不适用是因为你的另一项。name有额外的空格
Object{name:“aa”,phone:“123”,date:“}Object{name:“ff”,phone:“123”,date:”}Object{name:“bb”,phone:“12”,date:“}Object{name:“dd”,phone:“11”,date:“}
您可以看到{name:'aa'}与{name:'bb'}的不同之处
bb'有额外的空间。这就是为什么你的第一项不起作用
handleSubmit = (e) => {
e.preventDefault();
this.props.onCreate(this.state);
this.setState({
name: "",
phone: "",
date: ""
});
};