react-native - React Native - 从数组中设置状态
问题描述
我是create-react-native-app
第一次尝试,我想在不同的时间间隔内更改文本。但是我的代码只给了我数组的最后一项。
import React from 'react';
import { Text } from 'react-native';
const blinkText = [
{
text: "A",
time: 500,
},
{
text: "B",
time: 1000,
},
{
text: "C",
time: 1000,
},
];
export default class App extends React.Component {
constructor(props) {
super(props);
this.state = {};
}
componentDidMount() {
this.interval = setInterval(() => {
blinkText.map(value => this.setState(value))
}, this.state.time);
}
componentWillUnmount() {
clearInterval(this.interval);
}
render() {
return(
<Text>{this.state.text}</Text>
);
}
}
我知道我有我的问题,componentDidMount()
但我想不出办法。请查看我的代码并进行修改。谢谢。
解决方案
尝试这个
componentDidMount(){
blinkText.map(e => {
setTimeout(() => {
this.setState(
prevState => ({
text: [...prevState.text, e]
});
);
}, e.time);
});
}
请注意,this.stat.text
是一个数组,因此您应该render()
通过应用在您的方法中呈现它map()
例子:
{ this.state.text.map((e, i) => {
return (
<Text key={i}>{e}</Text>
);
})}
推荐阅读
- c# - Form.Deactivate 中的鼠标按钮状态错误
- sql-server - 在 SQL Server 中计算表达式
- python - 如何在笔记本中使用子进程?
- single-sign-on - AEM 6.4.x + SAML 身份验证 (Okta):如何(通过 Java)读取来自 SSO 提供商的 SAML 响应?
- regex - 在Bash中递归查找目录中的所有c#代码文件
- swift - 如何修复具有分配参数的初始化程序
- azure - Azure 容器注册表中基于帐户的图像拉取权限
- swift - 错误:分段错误:11(在项目“proj”的目标“proj”中)
- ms-access - SQL语句查询结束后发现字符问题
- opencl - arm mali midgard gpus上的零复制缓冲区分配?