Javascript 初学者反应查询(如何删除一个元素并附加另一个元素)

Javascript 初学者反应查询(如何删除一个元素并附加另一个元素),javascript,reactjs,Javascript,Reactjs,我刚刚开始学习React,在阅读了一些指南之后,我试着制作一个降价预览器。我成功地构建了它。但是我还想做点别的,我想做一个,然后在用户写了之后,当他们点击一个按钮时,它会自动呈现HTML(这是不可能的)。那么,有没有一种方法可以删除,并用呈现的HTML附加一个div 我的意思是,当用户单击按钮时,如何删除,然后添加新的 如果问题不清楚,只需评论遗漏的内容,我将对其进行编辑 减价的JSX const example = `Heading ======= Sub-heading ---------

我刚刚开始学习React,在阅读了一些指南之后,我试着制作一个降价预览器。我成功地构建了它。但是我还想做点别的,我想做一个
,然后在用户写了之后,当他们点击一个按钮时,它会自动呈现HTML(这是不可能的)。那么,有没有一种方法可以删除
,并用呈现的HTML附加一个div

我的意思是,当用户单击按钮时,如何删除
,然后添加新的

如果问题不清楚,只需评论遗漏的内容,我将对其进行编辑

减价的JSX

const example = `Heading
=======

Sub-heading
-----------

### Another deeper heading

Paragraphs are separated
by a blank line.

Leave 2 spaces at the end of a line to do a  
line break

Text attributes *italic*, **bold**, ` +
' `monospace`' + `,  ~~strikethrough~~ .

Shopping list:

  * apples
  * oranges
  * pears

Numbered list:

  1. apples
  2. oranges
  3. pears

The rain---not the reign---in
Spain.

 *[Lavios](kdsbjhsdbhjfbdjbs)*`


const App = React.createClass({
    getInitialState() {
        return {
            data: example
        }
    },
    updateVal(e) {
        this.setState({
            data: e.target.value
        });
    },
    render() {
        return (
            <div id="app">
                <div id="app-inside-first">
                    <textarea rows='35' cols='20' value={this.state.data} onChange={this.updateVal}/>
                </div>
                <div id="app-inside-second">
                    <Markdown stats={this.state.data} />
                </div>
            </div>
        )
    }
});

const Markdown = React.createClass({
    render() {
        let render_content = markdown.toHTML(this.props.stats);
        return (
            <div dangerouslySetInnerHTML={{__html: render_content}} />
        )
    }
});

ReactDOM.render(<App />, document.getElementById("container"));
const-example=`Heading
=======
副标题
-----------
###另一个更深的标题
段落是分开的
用空行表示。
在一行的末尾留2个空格,以便进行
断线
文本属性*斜体*,**粗体**,`+
“`monospace`+`,~~删除线~~”。
购物清单:
*苹果
*橙子
*梨
编号清单:
1.苹果
2.橘子
3.梨
雨,而不是统治,在
西班牙。
*[Lavios](kdsbjhsdbhjfbdjbs)*`
const App=React.createClass({
getInitialState(){
返回{
数据:示例
}
},
更新版本(e){
这是我的国家({
数据:e.target.value
});
},
render(){
返回(
)
}
});
const Markdown=React.createClass({
render(){
让render_content=markdown.toHTML(this.props.stats);
返回(
)
}
});
ReactDOM.render(

您需要根据应用程序的状态在呈现textarea和HTML之间切换。我更新了
组件以显示这一点:关键部分是
{this.state.showHtml?this.renderHtml():this.renderTextarea()}
line。检查是否设置了
showHtml
;如果设置了,则呈现HTML版本,如果未设置,则呈现文本区域

我还添加了一个按钮,用于切换
showHtml
状态,并将textarea和HTML组件移动到单独的函数中-您需要做一些整理,但这应该可以为您提供要点

const App = React.createClass({
    getInitialState() {
        return {
            data: example
        }
    },
    updateVal(e) {
        this.setState({
            data: e.target.value
        });
    },

    // render the output
    renderHtml() {
        return (
            <div dangerouslySetInnerHTML={{__html: render_content}} />
        );
    },

    // render the textarea
    renderTextarea() {
        return (
            <textarea rows='35' cols='20' value={this.state.data} onChange={this.updateVal}/>
        );
    },

    // toggle the showHtml state when the button is clicked
    handleClick() {
        this.setState({ showHtml: !this.state.showHtml });
    },

    render() {
        return (
            <div id="app">

                // switch between textarea and output on click
                <button onClick={ this.handleClick }>Show HTML</button>

                <div id="app-inside-first">

                    // key bit! if this.state.showHtml is true, render 
                    // output, otherwise render textarea
                    { this.state.showHtml ? this.renderHtml() : this.renderTextarea() }
                </div>
                <div id="app-inside-second">
                    <Markdown stats={this.state.data} />
                </div>
            </div>
        )
    }
});
const App=React.createClass({
getInitialState(){
返回{
数据:示例
}
},
更新版本(e){
这是我的国家({
数据:e.target.value
});
},
//渲染输出
renderHtml(){
返回(
);
},
//渲染文本区域
renderTextarea(){
返回(
);
},
//单击按钮时切换showHtml状态
handleClick(){
this.setState({showHtml:!this.state.showHtml});
},
render(){
返回(
//单击可在文本区域和输出之间切换
显示HTML
//密钥位!如果this.state.showHtml为true,则渲染
//输出,否则渲染文本区域
{this.state.showHtml?this.renderHtml():this.renderTextarea()}
)
}
});
您需要使用来根据应用程序的状态在呈现textarea和HTML之间切换。我已经更新了
组件来显示:关键部分是
{this.state.showHtml?this.renderHtml():this.renderTextarea()}
line。检查是否设置了
showHtml
;如果设置了,则呈现HTML版本,如果未设置,则呈现文本区域

我还添加了一个按钮,用于切换
showHtml
状态,并将textarea和HTML组件移动到单独的函数中-您需要做一些整理,但这应该可以为您提供要点

const App = React.createClass({
    getInitialState() {
        return {
            data: example
        }
    },
    updateVal(e) {
        this.setState({
            data: e.target.value
        });
    },

    // render the output
    renderHtml() {
        return (
            <div dangerouslySetInnerHTML={{__html: render_content}} />
        );
    },

    // render the textarea
    renderTextarea() {
        return (
            <textarea rows='35' cols='20' value={this.state.data} onChange={this.updateVal}/>
        );
    },

    // toggle the showHtml state when the button is clicked
    handleClick() {
        this.setState({ showHtml: !this.state.showHtml });
    },

    render() {
        return (
            <div id="app">

                // switch between textarea and output on click
                <button onClick={ this.handleClick }>Show HTML</button>

                <div id="app-inside-first">

                    // key bit! if this.state.showHtml is true, render 
                    // output, otherwise render textarea
                    { this.state.showHtml ? this.renderHtml() : this.renderTextarea() }
                </div>
                <div id="app-inside-second">
                    <Markdown stats={this.state.data} />
                </div>
            </div>
        )
    }
});
const App=React.createClass({
getInitialState(){
返回{
数据:示例
}
},
更新版本(e){
这是我的国家({
数据:e.target.value
});
},
//渲染输出
renderHtml(){
返回(
);
},
//渲染文本区域
renderTextarea(){
返回(
);
},
//单击按钮时切换showHtml状态
handleClick(){
this.setState({showHtml:!this.state.showHtml});
},
render(){
返回(
//单击可在文本区域和输出之间切换
显示HTML
//密钥位!如果this.state.showHtml为true,则渲染
//输出,否则渲染文本区域
{this.state.showHtml?this.renderHtml():this.renderTextarea()}
)
}
});

您可以使用if-else条件您可以使用if-else条件