type hereimport './App.css';
import { useState } from 'react';
function App() {
const [text, setText] = useState()
const People = {
name: 'jack'
}
const peoples = People.map(() => ({
nick: People.name
})
)
const funct = () =>{
if (text === peoples.nickname) {
console.log('worked')
} else {
console.log('not worked')
}
}
return (
<div>
<input onChange={(event) => {setText(event.target.value)}}/>
<h1>{text}</h1>
<br />
<button onClick={funct}>Click</button>
</div>
);
}
export default App;
我希望你能解答我的问题,并告诉我,我错在哪一点上,非常感谢,我试着Map文本,但还是不行,我也试着把文本作为对象,但还是不行。
2条答案
按热度按时间bxgwgixi1#
当试图创建一个数组的人时,你试图在一个对象上使用map。这是不可能的,因为你只能在一个数组上使用
map
。要解决此问题,您可以执行类似以下操作来创建一个数组,其中包含一个新对象,该对象包含一个属性
nick
,其值为People.name
然后在if语句中检查
peoples.nickname
,而我们刚刚创建了一个属性为nick
的对象。现在这个方法还不起作用,就像注解中提到的,你在比较一个***字符串***和一个***数组***,要解决这个问题,你可以使用一些循环
或者,我们可以使用every函数来检查数组中的所有人是否与
text
值匹配mqxuamgl2#
你在比较一个数组和一个字符串,正因为如此,它不起作用.
你需要把你的
funct
更新成这样: