【发布时间】:2020-10-19 11:48:04
【问题描述】:
我有两个 React 组件:ul 列表和每个 li 项目,这是一个闪存卡。在每个项目中都有两个字符串:搜索词及其翻译(api.source、api.target)以及复选框。单击复选框并稍后单击按钮(CardList.js)后,我想获取我的数据并将其发送到我的后端。谁能告诉我如何获取这两个字符串并将它们传递给 addFlashCards 函数?现在我已将其硬编码为 dataSet
const CardsList = ({ fetchedApi }) => {
const addFlashCards = () => {
const dataSet = [
{
apiSource: "sampleDataCheckbox",
apiTarget: "sampleDataCheckbox2",
},
{
apiSource: "sampleDataCheckbox",
apiTarget: "sampleDataCheckbox",
},
];
const url = "/api/saveToDB";
axios
.post(url, { data: dataSet, user: "SOME USER" })
.then((res) => {
const fetchedData = res.data;
console.log(fetchedData);
})
.catch((err) => console.error(err));
};
return (
<div className="cards-list">
<button onClick={addFlashCards}>Add</button>
<ul className="cards-list__list">
{fetchedApi.map((api) => {
return <CardItem api={api} />;
})}
</ul>
</div>
);
};
export default CardsList;
const CardItem = ({ api }) => {
const [isChosenCard, setIsChosenCard] = useState(false);
const clickedCheckbox = () => {
setIsChosenCard(!isChosenCard);
};
return (
<>
<li className="card-item">
<input
className="fiszkiBox"
type="checkbox"
onClick={clickedCheckbox}
/>
<div className="flip-card">
<div className="flip-card-inner">
<div className="flip-card-front">
<p id="api-source">{api.source}</p>
</div>
<div className="flip-card-back">
<p className="api-target">{api.target}</p>
</div>
</div>
</div>
</li>
</>
);
};
export default CardItem;
非常感谢!
【问题讨论】:
-
如果可能的话,使用一些硬编码数据创建此场景的 jsfiddle 工作链接并在此处共享该链接
标签: javascript reactjs api express