Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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 React Native-在按下时动态创建新组件_Javascript_Arrays_Reactjs_React Native - Fatal编程技术网

Javascript React Native-在按下时动态创建新组件

Javascript React Native-在按下时动态创建新组件,javascript,arrays,reactjs,react-native,Javascript,Arrays,Reactjs,React Native,我希望在用户每次单击按钮时动态创建一个新组件 导出默认函数WorkoutCard({children}){ const[workoutNum,setWorkoutNum]=useState([1]); 常量addset=()=>{ setWorkoutNum(workoutNum.push(workoutNum.length+1)); }; 返回( {儿童} {workoutNum.map((num)=>( ))} ); }问题:推送() 问题在于方法。该方法变异数组并返回新数组的长度。它不返

我希望在用户每次单击按钮时动态创建一个新组件

导出默认函数WorkoutCard({children}){
const[workoutNum,setWorkoutNum]=useState([1]);
常量addset=()=>{
setWorkoutNum(workoutNum.push(workoutNum.length+1));
};
返回(
{儿童}
{workoutNum.map((num)=>(
))}
);
}
问题:推送() 问题在于方法。该方法变异数组并返回新数组的长度。它不返回数组本身

setWorkoutNum(workoutNum.push(workoutNum.length + 1));
调用此函数时,您正在将状态从
数组
[1]
更改为
号码
2

解决方案:concat()或spread 您需要将状态设置为新数组。您可以使用扩展符号
[…state,newVal]
或使用。concat方法创建一个新的数组,并且不改变现有的数组

setWorkoutNum(workoutNum.concat(workoutNum.length + 1));
问题:push() 问题在于方法。该方法变异数组并返回新数组的长度。它不返回数组本身

setWorkoutNum(workoutNum.push(workoutNum.length + 1));
调用此函数时,您正在将状态从
数组
[1]
更改为
号码
2

解决方案:concat()或spread 您需要将状态设置为新数组。您可以使用扩展符号
[…state,newVal]
或使用。concat方法创建一个新的数组,并且不改变现有的数组

setWorkoutNum(workoutNum.concat(workoutNum.length + 1));

我不完全确定,但是你能试着用onPress={addSets()}改变onPress={addSets}吗我不完全确定,但是你能试着用onPress={addSets()}改变onPress={addSets}吗