Посмотрите в моем коде:
<div id="body"></div>
<script>
var myName = "Leon";
var message = "Are You Okey @Leon ?";
if(message.search(myName) !== -1){
var body = document.getElementById('body');
body.innerHTML = message;
}
</script>
Если в сообщении указано мое имя, результат будет указан в теле. Теперь я хочу сделать ссылку на свое имя. как изменить сообщение на следующий результат:
Are You Okey <a href="/link">@Leon</a> ?
Я хочу использовать реагирующий маршрутизатор .
Также мой код реакции:
const { uid, name, text, time, friend } = this.props;
let myName = '@' + getItem('name'); // result is, eg: @Leon
let thisMessage = text;
if(thisMessage.includes(myName)){
thisMessage = thisMessage.replace('@' + myName, `<a href="/link">@${myName}</a>`);
}
var message =
<div className="chat-msg">
<li>
{time}
</li>
<li>
{name}
</li>
<p>
{thisMessage}
</p>
</div>;
return message;
мне нужно использовать, например, этот код вместо:
<Router>
<Link to={ '/user/' + uid} className="grey">
{myName}
</Link>
</Router>
Но результат был такой [Object Object]
ОБНОВЛЕНИЕ: Я решил это путем редактирования следующей части:
if(thisMessage.includes(myName)){
var myLink =
<Router>
<Link to={ '/user/' + uid} className="grey">
{myName}
</Link>
</Router>;
thisMessage = thisMessage.split(myName);
for (var i = 1; i < thisMessage.length; i += 2) {
thisMessage[i] = myLink
}
}
Теперь все работает нормально. спасибо друзья.