如何在React应用中允许用户格式化?

我有一个React应用程序,用户可以在其中输入一些内容到文本框中,单击“提交”,然后文本出现在某处。

我想添加一些功能,使用户可以设置文本格式。就像您在提问时可以在SE上进行操作一样。例如,我希望以下输入显示为粗体

<b>bold</b>

我该如何实现?还是在哪里寻找这种东西?

cjzmly123 回答:如何在React应用中允许用户格式化?

是的,这可以使用状态以及复选框切换来确定文本是否应为粗体来完成。

handleChange将更新输入。 handleFormatChange将更新您是否应该使用粗体文本。在render中,可以实现条件以确定何时呈现哪种格式。

class Formatter extends React.Component {

  state = {
    format: false,input: ""
  }

  handleChange = () => {
    this.setState({
      input: event.target.value
    })
  }

  handleFormatChange = () => {
    this.setState({
      format: !this.state.format
    })
  }

  render() {
    var input = this.state.format 
    ? <b> {this.state.input} </b> 
    : <p> {this.state.input} </p>

    return ( 
      <div>
         Bold <input type="checkbox"
                     onChange = {
                       this.handleFormatChange
                     }
              />
              <br />
              <input value={this.state.input}
                     onChange = {this.handleChange}
              /> 
              <br/>
              {input} 
      </div>
    );
  }
}


ReactDOM.render( <
  Formatter / >,document.getElementById('root')
);
p {
  margin-top: 0px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
<div id="root">
  <!-- This element's contents will be replaced with your component. -->
</div>

,

如果要启用与堆栈溢出相同的功能,那么我认为实现此目的的一种方法是允许用户输入markdown并将其转换为HTML。这是一个可以帮助您解决此问题的库:marked

Freecodecamp将markdown预览器作为其项目之一,因此,如果您想查看一些示例,则可能会找到数百种不同的实现:https://www.freecodecamp.org/forum/t/build-a-markdown-previewer/198715

本文链接:https://www.f2er.com/3115077.html

大家都在问