Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 反应-正在进行排序,但第一个元素除外_Javascript_Reactjs_Sorting - Fatal编程技术网

Javascript 反应-正在进行排序,但第一个元素除外

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)); 这是我的国家(

我正在做添加列表和排序,但排序工作并不完美。 除了第一个元素外,它排序很好。 当我按顺序添加aa,bb,cc元素时,它应该按cc,bb,aa排序,但实际上 分类为aa、cc、bb。当我添加其他元素时,除了第一个元素“aa”外,它工作得很好

我为此工作了两天,但仍然不知道是什么问题。。。请帮帮我

我的排序函数是这样的

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: ""
    });
   };