我有一个用例,我将来自API的列表Map到ReactJS中的页面:
[
{question : "ques1", answer : "answer1"},
question : "ques2", answer : "answer2"},
question : "ques3", answer : "answer3"},
question : "ques4", answer : "answer4"},
question : "ques5", answer : "answer5"},
question : "ques6", answer : "answer6"}
]
现在,我必须为每个问题/答案集插入一个反馈输入框,并将其发送到服务器。
问题是对于多个用户,有未知数量的问题/答案集。例如,有:
用户1 - 10问题/回答集用户2 - 7问题/回答集......等。
我Map列表并插入一个输入字段,如下所示:
data.map(() => (
<div>
<p>{itm.question}</p>
<p>{itm.answer}</p>
<input onChange={(e) => setInput(e.target.value)}/>
</div>
))
我必须发送响应如下:
{
set_feedbacks : [
{
question_id : 124
feedback : "a feedback for this question set1"
},
{
question_id : 224
feedback : "a feedback for this question set2"
},
{
question_id : 928
feedback : "a feedback for this question set3"
}
]
}
// could be more and depends on the number of sets we have
我怎样才能做到这一点?
问题:
1.问题/答案集是未知的,并且对于不同的用户是不同的,所以在每个集之间Map并插入一个input
字段真的是最好的吗?如果是这样,如何为不同的集添加不同的文本,因为输入文本只是使用单一的句柄更改方法。
1.如何形成结构并将其发送到API?我需要先通过计算呈现到屏幕的集合的数量来形成数组吗?
感谢您的阅读。
任何一点指导都会对我很有帮助
2条答案
按热度按时间blmhpbnm1#
如果我理解正确的话,您希望创建一个表单,用户可以在其中对每个问题/答案集提供反馈。
有效的方法之一可以是
1.创建一个对象,将问题ID作为键,将反馈作为值,如-
第一个月
1.每当输入更新时更新特定问题id中的反馈状态
所以最终的代码可以是
Map数据的步骤
为了国家
将此反馈数据转换为所需的数据格式
6mzjoqzu2#
如果你添加不同的输入框,那么你需要相同数量的状态,每个输入框一个。在这里,你可以添加一个按钮,从那里模态将工作,你可以把questionid,这将来自按钮onclick函数,那里,沿着模态输入作为反馈与各自的questionid,你可以作出一个后请求API。