【发布时间】:2021-07-17 17:24:00
【问题描述】:
我的useState() 应该返回粗体文本(有 * 星 *)和换行符(有 /n)。
所以我想到了使用split() 和map(),但同时使用这两种方法时代码无法正常工作:
let [abt, setAbt] = React.useState([]);
let abtTxt = `I have /n *stars* and /n *lines*`
setAbt(abtTxt.split('*')) // creating the bolded text
setAbt(abtTxt.split(/\n/)) // creating the line breaks
return (
// bolding every two occasions:
abt.map((boldSlice, i) => <span key={i} style={ i % 2 !== 0 ? {fontWeight: "bold"} : {} }> {boldSlice} </span>)
// creating line breaks:
.map(lineSlice => <> {lineSlice} <br/> </>)
)
我该怎么办?可能是其他危险的内部 HTML 之类的东西?
谢谢!
【问题讨论】:
-
第二次调用 setAbt 将替换第一次调用的结果...
-
你可以只使用 Markdown 库。
标签: arrays reactjs object split jsx