0

我已经反应了本机组件(例如:myComponent),它具有以下代码来显示来自 this.props.text 的文本。此文本道具在 myComponent 中定义为字符串。

<Text size='large'
            style={styles.text}
            textId={this.props.text}
            values={this.props.values}>
          {this.props.text}
 </Text>

当我通过发送操作给出如下文本时,它将文本显示为字符串。但我希望组件显示为蓝色突出显示的链接

yield put(myComponent.displayAction(displayType,"<Text suppressHighlighting={false} style={{backgroundColor: 'white', textDecorationLine: 'underline', color: 'blue'}} onPress={() => null}>Link</Text>}")

如果我直接在 myComponent 中对字符串进行硬编码,它会显示我们可以执行 onclick 的链接。

<Text size='large'
        style={styles.text}
        textId={this.props.text}
        values={this.props.values}>
      //{this.props.text} => removed this and hardcoded the string below
      "<Text suppressHighlighting={false} style={{backgroundColor: 'white', textDecorationLine: 'underline', color: 'blue'}} onPress={() => null}>Link</Text>}"

将其显示为链接有什么帮助吗?

4

1 回答 1

0

您不能将带有 JSX 的字符串用作元素。在您的硬编码示例中,编译器将其视为一个元素,并忽略引号。

将道具更改为text元素而不是字符串,然后将该元素传递给displayAction,应该可以。

或者,您可以让text道具包含文本而不是元素,并将其显示为:

<Text suppressHighlighting={false} style={{backgroundColor: 'white', textDecorationLine: 'underline', color: 'blue'}} onPress={() => null}>{this.props.text}</Text>
于 2016-12-17T03:31:39.577 回答