首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用类组件在react中添加动态功能组件

使用类组件在react中添加动态功能组件
EN

Stack Overflow用户
提问于 2021-12-28 21:27:33
回答 1查看 19关注 0票数 0

我正在尝试列一个应该在UI中构建的技能列表,在这个步骤中我没有任何问题。但是当我在列表中添加一个新项目时,通过在输入中写入它并点击一个按钮来添加它,控制台会发送一个消息来告诉:技能是不可迭代的。

这是App.js文件中的代码:

代码语言:javascript
复制
import './App.css';
import Skills from './Components/Details'
import React,{useState} from 'react';

function App() {
  const [numApp,reNumApp] = useState(0)
  const [skill,reSkill] = useState('')
  const [skills,reSkills] = useState(['HTML'])
  
  const addSkill = (value)=>{
    let newList = skills.push(value);
    reSkills(newList);
    console.log(skills);
     
  }

  
  console.log(skills)
  return(
    <>
      <h1>Num Of applecation:{numApp}</h1>
      <button onClick={()=>reNumApp(numApp + 1)}>Other Application</button>
      <hr/>
      <input type='text' value={skill} onChange={(e)=>reSkill(e.target.value)}/>
      <button onClick={()=>{addSkill(skill)}}>Add</button>
      <Skills skills = {skills}/>

    </>
    
  )
}

export default App;

这是详细信息文件中的代码:

代码语言:javascript
复制
import React,{useState,Fragment} from 'react';

function Skill({key,value})
{
  const  [count,reCount] = useState(0)
  return(
    <>
      <span><p key={key}>{value} : {count}</p></span>
      <button onClick={()=>reCount(count + 1)}>+</button>
    </>
    
  )
}

function Skills({skills}) {
  return(

    <Fragment>
      {
        [...skills].map((v,i)=>{return <Skill key={i} value={v}/>})
      }
    </Fragment>
  )
  
}


export default Skills

我需要知道如何在不使用类组件的情况下解决这个问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-28 22:11:31

尽量不要推到当前状态,所以更改如下:

代码语言:javascript
复制
let newList = skills.push(value);
reSkills(newList);

对此:

代码语言:javascript
复制
reSkills([...skills, value]);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70512714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档