我有一个React应用程序,用户可以在其中输入一些内容到文本框中,单击“提交”,然后文本出现在某处。
我想添加一些功能,使用户可以设置文本格式。就像您在提问时可以在SE上进行操作一样。例如,我希望以下输入显示为粗体。
<b>bold</b>
我该如何实现?还是在哪里寻找这种东西?
是的,这可以使用状态以及复选框切换来确定文本是否应为粗体来完成。
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