【问题标题】:Hey, does anyone know why they are not identified嘿,有谁知道他们为什么不被识别
【发布时间】:2020-11-07 05:46:42
【问题描述】:

rtcAddroom component中的setRooms无法识别,有人知道为什么吗?

谢谢..

App.js

import Addroom from './components/Addroom.js';
import './App.css';

function App() {

  const [rooms, setRooms] = useState([{name: 'Room A',type: '',color:'',},{name: 'Room B',type: '',color:'',},{name: 'Room C',type: '',color:'',}]);
      




const addRoom=(n,t)=>{
  setRooms([...rooms,{name:n,type:t}])
}
  
  return (
    <div className="App">
  
  <h2>My Smart House</h2>

      {rooms.map((e)=>{
    return <Addroom n={e.room} t={e.type} c={e.color} add={addRoom}/>
  })}


    </div>
  );
}

export default App;


Addroom.js


export default function Addroom(props) {

    const [name, setName]= useState('');
    const [type, setType]= useState('');


    return (
        <div>
            <h1>Room: {r.props}</h1>
            <h3>Type: {t.props}</h3>
            <h4>Color: {c.props}</h4>
            <button onClick={()=>setRooms()}></button>



            <input onChange={(e)=>{setName(e.target.value)}} placeholder="name"/><br/>
              <input onChange={(e)=>{setType(e.target.value)}} placeholder="type"/><br/>
              <button onClick={()=>{props.add(name,type)}}>Add</button>
        </div>
    )
}

【问题讨论】:

    标签: reactjs components react-hooks react-props


    【解决方案1】:

    您应该使用props.d,props.t 而不是d.props,因为您拥有props 对象并使用它的值。

    另外,你真的不应该使用这样的快捷方式,这是一个非常糟糕的做法 - 使用完整的有意义的名称,你在 AddRoom 道具中也有一个错字:

    // not n={e.room}, there is no usage for props.n
    <Addroom r={e.room} t={e.type} c={e.color} add={addRoom} />;
    

    此外,在Addroom 中,您使用了未定义的setRooms,这样的功能不在AddRoom 的范围内。

    【讨论】:

    • @OrMor 如果有帮助,请考虑支持/接受答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-27
    • 2014-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多