React中如何给Material-UI按钮配置带动态参数的SSRS报表下载链接?
你的问题出在模板字符串使用方式错误,以及变量取值逻辑问题:
- 模板字符串必须用反引号``包裹,双引号里的
${}会被当成普通文本,不会解析变量。 - 你需要从当前遍历的
alldata对象中取订单号,而非使用未关联当前行数据的ordernumber变量(假设你的数据里订单号字段是ord_no,对应alldata.ord_no)。
修正后的代码如下:
{data.map((alldata) => ( <ul key={alldata.id}> <li><input id={alldata.id} defaultValue={alldata.supplier_email} onChange={e => setInput1(e.target.value)} size="35"/></li> <li><input id={alldata.id} defaultValue={alldata.confirmed} onChange={e => setInput2(e.target.value)} size="35"/></li> <Button component={Link} to={`http://sqlserver15/ReportServer/Pages/ReportViewer.aspx?%%2fESE_PRODUCTION%2fEvent+Manager%2fPurchase_Order&ord_no=${alldata.ord_no}&rs:Command=Render&rs:Format=PDF`}> 下载报表 </Button> <button id={alldata.ID} onClick={handleUpdate}>Update</button> </ul> ))}
关键说明:
- 将
to属性的双引号替换为反引号``,这样内部的${}会被正确解析为变量值。 - 把
${ordernumber}改为${alldata.ord_no},确保每一行按钮对应当前行的订单号(如果你的订单号字段名不是ord_no,替换为数据里的实际字段名即可)。 - Material-UI的
Button配合Link使用时,to属性完全支持动态生成的字符串,格式正确就能正常跳转。
内容的提问来源于stack exchange,提问作者Glenn94
相关产品推荐
相关产品推荐

