2017-07-31 77 views
0

业余ReactNative开发人员,如何传递特殊字符连字符( - )模板文字内部。这样${hyphen inside} 对于说:如何通过特殊字符“(连字符) - ”内部模板文字

<Component text = `${this.props.color}` /> 

让我怎么编辑以这样的方式,只要颜色传递。它通过这种方式:“ - 绿色”

+0

不,我不希望它是way..I要问的值是有可能传递“ - ”在模板文字里面? – HSBP

回答

1

你可以做普通的JavaScript操作模板字面大括号内,例如:

${color ? ('-' + color) : null}


你举的例子:

//     if color exists ? return "-color" : else nothing 
<Component text =`${this.props.color ? ("-" + this.props.color) : null}` /> 
+0

我可以用类似的方式添加连字符吗,''{{“ - ”)this.props.color}' – HSBP

+0

不,这是正常的JavaScript:如果你想根据条件应用某些东西,你需要检查条件。我的例子转化为'条件? (如果条件是truthy,做到这一点):(否则,这样做)' – Solo

+0

嘿谢谢你!它的工作:) – HSBP

0

我很确定你说的是不可能的,但是你可以改变你发送的道具本身(假设你有{0}作为一个占位符:

`${this.props.color.replace('{0}', '-')}` 

的情况下,这是一个。也许你有你需要帮助,将其添加到您的问题具体使用情况

又如:

`${'-'.concat(this.props.color)}` 

将导致(假设this.props.color是“绿色”)“ - 绿色”

+0

你能让我的情况更简单吗? – HSBP

0

如果已经存储在像道具宣传(任何变量):this.props.hyp =“ - ”,则用途:

<Component text = `${this.props.hyp}` /> 

否则使用简单:

<Component text = `-`/> 
+0

没有,这是行不通的。 – HSBP

0

您可以通过角色的${...}外面像

<Component text = `-${this.props.color}` /> 

看到一个演示片段

var data = "Green" 
 

 
console.log(`-${data}`);

如果你想通过文字,只有当this.props.color is可用,您可以使用ternary operator

<Component text = {this.props.color? `-${this.props.color}`: null} /> 
+0

是的,这是做的一种方式,但我想显示连字符只有当一些颜色通过。既然你在美元之外定义了连字符,它会每次渲染。所以有没有办法在自己内部传递连字符? – HSBP

+0

@Hash,'$ {}'内的所有东西都被解析了,所以你不能在'$ {}'里面传递它,但是你可以有一个三元条件。我会补充一点 –