【发布时间】:2021-01-20 01:41:26
【问题描述】:
我有一个数组 -
var profiles = [
{
name: "Name1",
description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
},
{
name: "Name2",
description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
},
{
name: "Name3",
description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
},
{
name: "Name4",
description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
}
];
我想截断描述字符串。只有前 25 个字符与“阅读更多”按钮一起可见。单击 Read More 时,状态应展开并应显示完整的字符串,单击 Read Less 时,段落应折叠。
问题是,当我点击 Read More 时,它触发点击循环中的所有段落,并且所有段落一起展开/折叠,而不是点击 ReadMore/ReadLess 的段落.
下面是我的代码
const ProfileGrid = (props) => {
const [textRevealed, toggleText] = useState(false);
const truncLength = 25;
return (
<>
{props.profiles.map((profile,index) => (
<p>{profile.name}</p>
<p>{textRevealed ? profile.profile_description :
profile.description.substring(0, truncLength)}...
<Button onClick={() => toggleText(!textRevealed)}>
{textRevealed ? 'Read Less' : 'Read more'}
</Button>
}</p>
</>
)
}
我不确定如何准确维护索引,因此当单击阅读更多时,只有单击的索引会展开/折叠。
谢谢
【问题讨论】:
标签: javascript reactjs