Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.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 - Fatal编程技术网

Javascript 如何在数组中的索引中添加元素?反应

Javascript 如何在数组中的索引中添加元素?反应,javascript,reactjs,Javascript,Reactjs,我正在做抽搐抽搐的游戏,但我有个问题 我想将元素添加到数组中传递的位置 我的app.js: import React,{Component}来自'React'; 导入“/App.css”; 从“/Square.js”导入Square; 导入“./Square.css”; 类应用程序扩展组件{ 构造函数(){ 超级(); 此.state={ 电路板:阵列(9)。填充(“”), 当前用户:“X”, 位置:数组(9)。填充(“”), } } changeUser=()=>{ 这是我的国家({ cur

我正在做抽搐抽搐的游戏,但我有个问题

我想将元素添加到数组中传递的位置

我的app.js:

import React,{Component}来自'React';
导入“/App.css”;
从“/Square.js”导入Square;
导入“./Square.css”;
类应用程序扩展组件{
构造函数(){
超级();
此.state={
电路板:阵列(9)。填充(“”),
当前用户:“X”,
位置:数组(9)。填充(“”),
}
}
changeUser=()=>{
这是我的国家({
currentUser:this.state.currentUser=='X'?“O”:“X”,
})
}
render(){
返回(
井字游戏
{this.state.board.map((v,i)=>
{props=>({props})}
)}
);
}
}

导出默认应用程序您需要使用拼接功能,将项目放入特定位置

所以你应该像这样做

position.splice(thePosition, 0, valueToBeInserted);

您可以在

中读取其文档。您需要使用拼接功能,将项目放入特定位置

所以你应该像这样做

position.splice(thePosition, 0, valueToBeInserted);
您可以在您正在使用的

中阅读其文档:

position.push(currentUser);
这会将元素“currentUser”添加到数组中。那不是你想要的

你应该改为:

position[i] = currentUser;
您正在使用:

position.push(currentUser);
这会将元素“currentUser”添加到数组中。那不是你想要的

你应该改为:

position[i] = currentUser;
你可以改变

position.push(currentUser);

下一步:将处理程序向下传递到
Square
,该处理程序更新
App
中的状态,而不是在
Square
中对状态进行修改

position.push(currentUser);

下一步:将处理程序向下传递到
Square
,该处理程序更新
App
中的状态,而不是在
Square
中对状态进行变异
位置。push()
方法只会添加到数组中。要影响阵列的特定位置,需要:

this.state = {
 board: Array(9).fill('') 
}

this.state.board[1] = 'X'
最后一行代码将用一个“X”字符替换board变量第一个位置的当前值,给出:

["", "X", "", "", "", "", "", "", ""]
希望能有帮助

更新 我的理解是
slice()
方法将在数组的中间插入一个元素。因此,它将增长。我认为这不是你的目标

更新 您应该始终使用
setState()
函数更新组件的状态

position.push()
方法只会添加到数组中。要影响阵列的特定位置,需要:

this.state = {
 board: Array(9).fill('') 
}

this.state.board[1] = 'X'
最后一行代码将用一个“X”字符替换board变量第一个位置的当前值,给出:

["", "X", "", "", "", "", "", "", ""]
希望能有帮助

更新 我的理解是
slice()
方法将在数组的中间插入一个元素。因此,它将增长。我认为这不是你的目标

更新
您应该始终使用
setState()
函数更新组件的状态

错误消息是什么?它是打印,它添加到数组的末尾:(永远不要对传递给您的道具进行变异。将父级回调传递给子级调用的子级,并让父级回调调用
setState
尝试
。splice(position,0,player)
而不是推送错误消息是什么?这是打印,它添加到数组末尾:(切勿对传递给您的道具进行变异。将父级回调传递给子级调用的子级,并让父级回调调用
setState
try
.splice(position,0,player)
而不是按