我想在第一次触发时运行一个延迟的间隔。我该如何使用 useEffect 来做到这一点?由于语法,我发现很难实现我想做的事情
区间函数
useEffect(()=>{
const timer = setInterval(() => {
//do something here
return ()=> clearInterval(timer)
}, 1000);
},[/*dependency*/])
Run Code Online (Sandbox Code Playgroud)
延迟功能
useEffect(() => {
setTimeout(() => {
//I want to run the interval here, but it will only run once
//because of no dependencies. If i populate the dependencies,
//setTimeout will run more than once.
}, Math.random() * 1000);
}, []);
Run Code Online (Sandbox Code Playgroud)
当然,它是可以以某种方式实现的......
我有一个简单的 .json 我正在尝试导入:
{
"data": {
"plans": {
"1": "14",
"2": "20",
"3": "40"
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我使用MongoDB Compass直接导入json文件时,计划对象被转换为数组:
{ "_id": { "$oid": "5fe3ff5d909016064978f2bd" }, "plans": [null, "14", "20", "40"] }
Run Code Online (Sandbox Code Playgroud)
难道我做错了什么?或者我可以不使用数字作为 JSON 中的键吗
自从升级到最新的 React-Native 版本(0.55.4)以来,我在滚动模态列表时遇到了问题。在本例中它是一个 Flatlist
有问题的 Flatlist 位于一个模态中,该模态位于另一个模态中,该模态在另一个 Flatlist 上呈现为页脚组件(它是一个添加按钮)。
请帮忙!谢谢
代码:
Flatlist 页脚组件(添加按钮):
@observer
class AddButton extends Component {
@observable visible = false;
constructor(props) {
super(props);
this.state = {
mergeName: '',
coin: undefined
};
}
show = () => {
this.visible = true;
};
hide = () => {
this.visible = false;
};
render() {
return (
<View>
<Button
primary
onPress={() => {
this.show();
}}
title={'add'}
style={{
width: '50%',
alignSelf: 'center',
marginVertical: 16
}}
/>
<Modal
visible={this.visible}
animationType='slide'
onRequestClose={this.hide}
> …
Run Code Online (Sandbox Code Playgroud) javascript ×1
json ×1
mongodb ×1
react-hooks ×1
react-native ×1
reactjs ×1
setinterval ×1
settimeout ×1
use-effect ×1