【发布时间】:2020-11-01 16:49:27
【问题描述】:
我是 React 新手,最近开始研究它。我知道我们不能使用 props 更改组件属性。
我想知道如何更改组件的属性? 以下是我的代码:
Courses.jsx
function Courses(){
return (
<div className="courses">
<h1>Ongoing Courses</h1>
<div className="row">
{CourseData.map((value,index)=>{
return (
<div className="col-md-3">
<Card title={value.title} completed={value.completed} content={value.content} value="Resume !" key={index} id={index} />
</div>
);
})}
</div>
</div>
);
}
在上面我有一个名为 courseData 的数据数组,我将它映射到 Card 组件上。
卡片.jsx:
function Card(props){
function handleClick(){
}
return (
<div className="card">
<div className="card-body">
<h2 className="card-title">{props.title}</h2>
{props.content}
<br/>
<button className="btn btn-danger" > {props.value}</button>
</div>
</div>
);
}
CourseData 具有以下属性:
courseData : [{
key,
title,
completed
content}]
我只是希望当出现的按钮是卡片时被点击,然后 courseData 的完成属性更改为通过道具传递的一些不同的值。
我尝试了很多,但做不到。
任何有关这方面的帮助都会对我有所帮助。
courseData.jsx:
const notes = [{
key: 1,
title: "some Text",
completed:false,
content: "some Text"
},
{
key: 2,
title: "some Text",
completed:false,
content: "some Text"
}]
export default notes;
【问题讨论】:
-
你在哪里声明了
CourseData?可以分享一下吗? -
嘿@Arnab courseData 就像 :const notes = [{ key: 1, title: "Delegation", completed:false, content: "Q. 换一盏灯需要多少程序员灯泡?A. 无 - 这是硬件问题" }, { key: 2, title: "Loops", completed:false, content: "如何让程序员永远洗澡。给他看洗发水瓶说明:起泡。冲洗。重复。” }]
-
CourseData 是状态变量吗?
-
是的,我看到了,但是你在哪里声明的?是
Courses.jsx的状态吗? -
你好,我在上面添加了 courseData.jsx 文件,你可以在那里看到。它是简单的数据数组文件。
标签: javascript reactjs react-component react-state