reactjs - 如何在 React 中添加动态创建的链接
问题描述
moveToListSuccess = (listMovedTo, listMovedId) => {
const link = <a href={`/mylist?id=${listMovedId}`}>{listMovedTo}</a>;
this.showTopMessage('success', `1 item successfully moved to ${link}`);
this.getSavedListAction();
}
showTopMessage = (type, message) => {
this.setState({
showMessage: true,
message,
type,
});
}
当我尝试将链接作为参数传递时,它给了我 [Object object],因为它的字符串连接
当用户单击链接时,他/她应该导航到页面。
并且消息正在渲染中传递
{showMessage && <div className={cx('topLevelMessage')}>
<MessageBox showIcon={false} hasClose type={type} level="section" onClose={this.closeMessageBox}>
<span>{`${message}`}</span>
</MessageBox>
</div>}
解决方案
模板文字采用原始类型。它不适用于对象
要解决您的问题,请使用第三个参数并传递link
对象
moveToListSuccess = (listMovedTo, listMovedId) => {
const link = <a href={`/mylist?id=${listMovedId}`}>{listMovedTo}</a>;
this.showTopMessage('success', "1 item successfully moved to ",link );
this.getSavedListAction();
}
我不会推荐这种方法,但我提供了解决方案而不改变您当前的任何流程。将link
对象设置为您的state
,如下所示
showTopMessage = (type, message,link) => {
this.setState({
showMessage: true,
message,
type,
link
});
}
可以如下图渲染
{showMessage && <div className={cx('topLevelMessage')}>
<MessageBox showIcon={false} hasClose type={type} level="section" onClose={this.closeMessageBox}>
<span>{message} {link}</span>
</MessageBox>
</div>}
推荐阅读
- python - Cannot increase accuracy of calculation (not enough decimal spaces)
- python-3.x - 从不和谐消息中提取不和谐用户 ID
- c# - c#避免多个MessageBox显示?
- spring-boot - 为 POST 的 HTTP 路径“http://localhost:8080/error”映射的模糊处理程序方法
- mongodb - 单个组的 Mongodb 查询限制
- php - 尽管设置了 max_execution_time,PHP 仍以 30 秒切割
- python - 从终端中正在进行的进程中读取命令行输出
- python - 重塑 Numpy 数组:“列表”对象不可调用
- compiler-construction - llvm IR 中的冗余基本块
- json - jasper 中的交叉表仅显示输入 json 中的第一列