Reactjs 使用类组件的react挂钩将onCancel转换为功能组件
我正在使用React钩子将类组件转换为功能组件,出于某种原因,我的Reactjs 使用类组件的react挂钩将onCancel转换为功能组件,reactjs,react-hooks,Reactjs,React Hooks,我正在使用React钩子将类组件转换为功能组件,出于某种原因,我的onCancel错误与解析错误:意外标记,预期“,” 我不确定转换是否正确 之前 class ClosedCaptions extends Component { constructor(props) { super(props); this.state = { isOpen: props.isOpen, }; this.handleClick = this.handleCl
onCancel
错误与解析错误:意外标记,预期“,”
我不确定转换是否正确
之前
class ClosedCaptions extends Component {
constructor(props) {
super(props);
this.state = {
isOpen: props.isOpen,
};
this.handleClick = this.handleClick.bind(this);
this.onCancel = this.onCancel.bind(this);
}
componentDidMount() {
const { fetchClosedCaption, fetchPersona } = this.props;
fetchClosedCaption();
fetchPersona();
}
componentDidUpdate(prevProps) {
if (prevProps.isUpdatingPersona !== this.props.isUpdatingPersona && this.props.isUpdatingPersona) {
this.setState({
isOpen: false,
});
}
}
onCancel() {
this.setState({
isOpen: false,
});
this.props.restoreToSaved();
}
handleClick() {
this.setState({
isOpen: true,
});
}
之后
const ClosedCaptions = ({ isOpen, fetchClosedCaption, fetchPersona, restoreDefault }) => {
const { t } = useTranslate();
const [newIsOpen, setIsOpen] = useState(isOpen);
useEffect(() => {
fetchClosedCaption();
fetchPersona();
}, [])
useEffect(() => {
if (isUpdatingPersona !== isUpdatingPersona && isUpdatingPersona) {
setIsOpen(false);
}
}
const onCancel = () => {
setIsOpen(false);
restoreToSaved();
}
const handleClick = () => {
setIsOpen(true);
}
useffect(()=>{
if(isUpdatePersona!==isUpdatePersona&&isUpdatePersona){
setIsOpen(假);
}
}
缺少,[IsUpdatengPersona])
,下一行的常量将触发您的意外令牌
错误。为了澄清,应将其写为:
useffect(()=>{
if(isUpdatePersona!==isUpdatePersona&&isUpdatePersona){
setIsOpen(假);
}
},[IsUpdatengPersona])
使用上面而不是下面声明的isupdateingpersona
,以便作为效果的依赖项引用
正常情况下,我会以“不可复制或由键入错误导致”结束此问题,但由于我已投票以“需要调试详细信息”结束,并随后撤回,因此我无法投票结束此问题。restoreToSaved
是来自props的fn,请对其进行分解或将整个props对象传递给您的组件。虽然这不是错误的原因。错误指向哪一行?嗨,我更新了代码。。。希望这已经足够了?IsUpdatengPersona并没有丢失,它是一个常量。我只是没有添加它,因为这不是问题所在。有很多代码,我试图避免复制粘贴整个内容。@HelloL我不是说变量丢失了。我是说函数调用useffect()
的右括号缺失,第二个参数是依赖项列表。您还应该养成将局部变量声明在其用法之上而不是之下的习惯,因为需要将isupdateingpersona
指定为此效果的依赖项才能正确。啊,好的,谢谢,这很有意义!