TSX中使用lodash结合模板字符串传组件header属性失效如何解决
问题根源
代码无法运行和lodash无关,是JSX的属性传值写法错误:JSX中给组件props传递动态JavaScript表达式(包括变量、函数调用、模板字符串、运算结果等)时,必须用大括号{}将表达式包裹,否则JSX会把等于号后的值直接当成普通静态字符串解析,不会执行模板字符串的插值逻辑。
你当前的写法里,反引号包裹的模板字符串直接跟在header=后面,没有加大括号,${_.startCase(type)}不会被解析执行,只会作为普通文本传给header属性,自然达不到预期效果。
修正后代码
<H header={`${_.startCase(type)} SomeString`} subheader="Lorem ipsum do eiusmod" />
写法规则说明
- 给props传递静态固定字符串时,可以直接用双引号包裹写在属性后,比如示例中的
subheader="Lorem ipsum do eiusmod"就是合法写法 - 只要属性值需要动态计算(调用方法、拼接变量、使用模板字符串、做逻辑判断等),必须在属性等于号后先写大括号,再把JS表达式写在大括号内部,JSX才会正确解析执行表达式的结果作为prop值
内容的提问来源于stack exchange,提问作者user19251203
相关产品推荐
相关产品推荐

