如果我在这里遗漏了一些标准,请原谅我,因为 React 不是我默认的 javascript 开发工具。这似乎应该很容易获得,所以我想我应该问一下。是否有可能,如果有,我怎样才能找到一个子字符串,然后在 React Native 中更改该子字符串的样式?
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)
}
您可以定义一个包含字符串或对象的数组(如果您想对其进行更深入的自定义,不仅是颜色),然后将其映射到Text
组件数组中。这是示例代码。
class Sample extends Component {
// You can manipulate this items array, using setState
state = {
items: ['black', 'green', 'red']
}
render() {
return (
<Text>
{textItems.map(item => (
<Text style={{ color: item }}>{item}</Text>
))}
</Text>
);
}
}
结果会是这样
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句