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}吗