Javascript TypeError:无法读取属性';州';未定义-呈现内容的类型

Javascript TypeError:无法读取属性';州';未定义-呈现内容的类型,javascript,reactjs,Javascript,Reactjs,获取错误:TypeError:当我尝试使用TogglePersonHandler呈现元素以获取PersonState内的内容时,无法读取undefined的属性“state”。目标是通过单击按钮获取内容 这是我的App.js文件 import React,{useState}来自“React”; 导入“/App.css”; 从“./人/人”导入人; const App=props=>{ 常量[PersonState]=使用状态({ 人员:[ {姓名:'Maxmillian',年龄:28}, {

获取错误:TypeError:当我尝试使用TogglePersonHandler呈现元素以获取PersonState内的内容时,无法读取undefined的属性“state”。目标是通过单击按钮获取内容

这是我的App.js文件

import React,{useState}来自“React”;
导入“/App.css”;
从“./人/人”导入人;
const App=props=>{
常量[PersonState]=使用状态({
人员:[
{姓名:'Maxmillian',年龄:28},
{姓名:'Manu',年龄:18},
{姓名:'Stephanie',年龄:24}
],
otherState:“其他值”,
表演者:假
});
const switchNameHandler=(newName)=>{
//console.log('Was clicked!');
这是我的国家({
人员:[
{姓名:newName,年龄:28},
{姓名:'Manu',年龄:18},
{姓名:'Stephanie',年龄:24}
]
});
};
const nameChangedHandler=(事件)=>{
这是我的国家({
人员:[
{姓名:'Max',年龄:28},
{name:event.target.value,年龄:18},
{姓名:'Stephanie',年龄:24}
]
})
};
常量TogglePersonHandler=()=>{
const doesShow=this.state.showPersons;
this.setState({showPersons:!doesShow});
}
常量样式={
背景颜色:“白色”,
字体:“继承”,
边框:“1px纯蓝色”,
填充:“8px”,
光标:“指针”
};
返回(
嗨,我是React应用程序
这真的很有效

交换机名称 { this.state.showPersons===真? 我的爱好:赛车 :null } ); } //ein元素entwickeln //返回React.createElement('div',{className:'App'},React.createElement('h1',null,'Work')); 导出默认应用程序
此.state
此.setState
仅在扩展
React.component
的类组件中可用。您使用的是功能组件,因此需要使用挂钩来更新状态。我建议为
showPersons
创建一个单独的状态:

const [ showPersons, setShowPersons ] = useState(false);

const togglePersonsHandler = () => {
    setShowPersons(!showPersons);
}
如果只需要一个状态,请添加一个setter:

const [ personsState, setPersonsState ] = useState({...});

请阅读如何使用useState钩子。你做错了。在状态钩子中没有this.setState。非常感谢,它工作正常!除了您的解决方案之外,我还将showPersons的语法更改为if(showPersons)-condition,其中包含元素