Javascript React createElement不工作返回[对象]

Javascript React createElement不工作返回[对象],javascript,reactjs,Javascript,Reactjs,我有一个简单的代码,我试图使用替换原型替换旧内容,并用新内容创建新元素 比如说 类应用程序扩展了React.Component{ 构造函数(){ 超级(); 此.state={ 名称:“粗体” }; } 替换=()=>{ 让oldState=this.state.name; oldState=oldState.replace(/bold/i,React.createElement('b',{children:'withBold'})) console.log(oldState) this.se

我有一个简单的代码,我试图使用
替换原型
替换旧内容,并用新内容创建新元素

比如说

类应用程序扩展了React.Component{
构造函数(){
超级();
此.state={
名称:“粗体”
};
}
替换=()=>{
让oldState=this.state.name;
oldState=oldState.replace(/bold/i,React.createElement('b',{children:'withBold'}))
console.log(oldState)
this.setState({name:oldState})
}
render(){
返回(
单击
{this.state.name} ); } } ReactDOM.render(,document.getElementById('code'))
String.prototype.replace
要求替换值为字符串或函数。您正在传入一个对象(
React.createElement(…)

你的问题在这里:

oldState = oldState.replace(
    /bold/i,
    // The following must be a string, but you are passing in an object:
    React.createElement('b',{ children: 'withBold'})
);
有很多方法可以解决这个问题。 就我个人而言,对于这样一个简单的案例,我只想写:

this.setState(prevState => ({
    name: prevState.name.toLowerCase() === 'bold'
        ? <b>withBold</b>
        : prevState.name
});
this.setState(prevState=>({
名称:prevState.name.toLowerCase()==='bold'
?粗体
:prevState.name
});

我不太明白您想要完成什么。
oldState.replace(/bold/I,'withBold')
做的不是您想要的吗?@Tholle嗨,我正在尝试创建一个DOM元素,它应该像
withBold