【发布时间】:2019-09-05 14:58:36
【问题描述】:
如果我在这里遗漏了一些标准,请原谅我,因为 React 不是我默认的 javascript 开发工具。这似乎应该很容易获得,所以我想我应该问。有没有可能,如果可以,我怎样才能找到一个 substring,然后在 React Native 中更改该 substring 的样式?
示例:
render() {
return (
<View>
<Text>
{this.state.myText}
</Text>
</View>
);
}
componentDidMount() {
setTimeout(() => {
let newStr = this.state.myText.replace('green', '<Text style={{ color: "green" }}>green</Text>');
this.setState({ myText: newStr });
},
3000)
}
但很明显,您不能动态添加 Text 组件来以这种方式设置子字符串的样式。正确的方法是什么?
编辑:
我一直在研究这个问题,如果我没记错的话……我必须创建一个完整的子组件数组,跟踪子组件,然后动态地将文本组件添加/删除到这个数组中如果我只是想改变文本的颜色,用字符串?有人请告诉我 React 在这方面没有这个缺陷......
使用的最终代码:
render() {
return (
<View style={styles.container}>
<Text>
{this.state.textItems.map(item => (
<Text style={{ color: item === 'green' ? 'green' : 'black' }}>{item}</Text>
))}
</Text>
</View>
);
}
componentDidMount() {
setTimeout(() => {
this.setState({ textItems: this.state.textItems[0].split((/(green)/)) });
},
3000)
}
【问题讨论】:
-
文本模块不能是父模块。无法将文本插入文本模块。
标签: reactjs react-native