在 React hooks 中实现显示更多和显示更少页面会抛出未定义的错误
2022-05-19
299
尝试在我的 React hooks 页面中实现
显示更多和显示更少
时,我收到无法读取未定义的属性(读取子字符串)的错误。有人可以建议可能是什么问题吗?
组件中发生了上述错误:
at MiddleSection (http://localhost:3000/main.2efdffa93468c998df75.hot-update.js:92:82)
at div
at Home
at Routes (http://localhost:3000/static/js/bundle.js:41795:5)
at Router (http://localhost:3000/static/js/bundle.js:41728:15)
at BrowserRouter (http://localhost:3000/static/js/bundle.js:40537:5)
at App
考虑在树中添加错误边界以自​​定义错误处理行为。
访问
https://reactjs.org/link/error-boundaries
了解有关错误边界的更多信息。
logCapturedError @ react-dom.development.js:18525
update.callback @ react-dom.development.js:18558
callCallback @ react-dom.development.js:13092
未捕获的 TypeError:无法读取未定义的属性(读取“子字符串”)
在 MiddleSection(middleSection.js:56:1)
// textData1.js
import React from 'react';
const TextData ="We are an awesome bunch of friendly people. We play together for fun and enjoy every moments of soccer.";
export default TextData
//middleSection.js
import React, { useState } from 'react';
import data1 from "../data/textData1";
const MiddleSection = () => {
const [showMore, setShowMore] = useState(false);
const { text } = TextData;
return (
<div className='row'>
<div className="middleTextContent">
<p id="middleTextOverlay">
{showMore ? text : `${text.substring(0, 50)} `}
<button className='showMoreLess' onClick={ () =>
setShowMore(!showMore)}>
{showMore ? "Show less": "Show More"}
</button>
</p>
</div>
</div>
)
}
export default MiddleSection;
2个回答
您可能遇到此问题的原因有两个:
-
middleSection.js
文件范围内没有TextData
变量 -
TextData
从textData1.js
导出为字符串,因此无法对其进行解构
将以下行
text.substring(0, 50)
替换为
data1.substring(0, 50)
并删除该行
const { text } = TextData;
Dzianis Roi
2022-05-19
TextData
是一个字符串,因此当您使用
const { text } = TextData
对其进行解构时,
text
(不是字符串上的属性)应该是未定义的。
如果您删除解构,然后直接引用
TextData
,它应该可以工作。
SeanMcP
2022-05-19