![](/img/trans.png)
[英]how to show and hide heading every 10 seconds with javascript in wordpress
[英]How to show a random string inside an array every 10 seconds React
它与console.log一起使用,它必须显示在前面
render(){
var myArray = [
"Apples",
"Bananas",
"Pears"
];
var randomItem = myArray[Math.floor(Math.random()*myArray.length)];
var intervalId = setInterval(() => {
var timoutId = setTimeout(() => {
console.log(randomItem);
}, 1000);
}, 10000);
return(
<div>randomItem</div>
)
}
console.log 每十秒显示一个随机字符串,但在 return() 上不起作用
class SomeComponent extends React.Component{ state={ randomItem:'' } myArray = [ "Apples", "Bananas", "Pears" ]; randomItemGenerator = () => ( this.myArray[Math.floor(Math.random()*this.myArray.length)] ) componentDidMount(){ this.interval = setInterval(() => { this.setState({randomItem:this.randomItemGenerator()}) }, 1000) } componentWillUnmount(){ this.interval && clearInterval(this.interval) } render(){ return( <div>{this.state.randomItem} - {Math.floor(Math.random()*100)}</div> ) } } ReactDOM.render( <SomeComponent />, document.getElementById("react") );
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.8.4/umd/react.production.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.8.4/umd/react-dom.production.min.js"></script> <div id="react"></div>
const [rndmItem, setRndmItem] = useState();
const myArray = ["Apples", "Bananas", "Pears"];
const timoutId = setTimeout(() => {
var randomItem = myArray[Math.floor(Math.random() * myArray.length)];
console.log(randomItem);
setRndmItem(randomItem);
}, 1000);
return <div>{rndmItem}</div>;
你的反应组件渲染 function 应该只返回你的应用程序在给定 state 中的外观表示。
因此,您不应该在渲染 function 内进行任何更改。
如果您使用 class 组件,您可以通过 class 方法和 React 内置生命周期方法来处理您的应用程序 state如何更改。 这是一个例子:
class App extends React.Component { state = { item: '' } interval = null myArray = ["Apples", "Bananas", "Pears"] randomItem = () => this.myArray[Math.floor(Math.random() * this.myArray.length)] componentDidMount() { this.interval = setInterval(() => { this.setState({item: this.randomItem()}); }, 10000); } componentWillUnmount() { clearInterval(this.interval) } render() { return <p>{this.state.item}</p> } } ReactDOM.render(<App />, document.getElementById('root'));
<script crossorigin src="https://unpkg.com/react@16/umd/react.development.js"></script> <script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script> <div id="root"></div>
class SomeComponent extends React.Component{ state={ randomItem:'' } myArray = [ "Apples", "Bananas", "Pears" ]; randomItemGenerator = () => ( this.myArray[Math.floor(Math.random()*this.myArray.length)] ) componentDidMount(){ this.interval = setInterval(() => { this.setState({randomItem:this.randomItemGenerator(i)}) }, 1000) } componentWillUnmount(){ this.interval && clearInterval(this.interval) } render(){ return( <div>{this.state.randomItem} - {Math.floor(Math.random()*100)}</div> ) } } ReactDOM.render( <SomeComponent />, document.getElementById("react") );
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.8.4/umd/react.production.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.8.4/umd/react-dom.production.min.js"></script> <div id="react"></div>
你得到的是什么? 另外,返回这里时使用 JSX。 试试 {randomItem}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.