嗨,我是 react native 的新手,我想知道如何限制将收到的状态值
Posted
技术标签:
【中文标题】嗨,我是 react native 的新手,我想知道如何限制将收到的状态值【英文标题】:Hi, im new at react native, i wanna know how to limit state value that will receive 【发布时间】:2020-05-09 07:37:33 【问题描述】:我有一个名为 temperatureHistory 的状态键,里面必须只有 6 个数组。
我已经在下面尝试过这段代码,但它不起作用:
this.setState ( temperatureHistory : min(0, max(value, 6)) );
【问题讨论】:
为什么要限制状态? 你要不要this.setState( temperatureHistory: value.slice(0, 6) )
?
你的意思是它不起作用?它是否会引发错误/不更新 UI 上的任何内容?
您必须向我们提供更多信息。从您提供给我们的代码来看,您似乎正在调用一个名为 min
的函数,并将参数 0, max(value, 6)
分配给您所在州的 temperatureHistory
键。
【参考方案1】:
在您的特定情况下,您正在寻找一种替代方法来限制 javascript 中数组的大小,这是一个与 react Native 无关的概念,因为您可以为您的状态设置任何值。
在这种情况下,你可以这样做:
const animals = ['ant', 'bison', 'camel', 'duck', 'elephant', 'tiger', 'lion'];
this.setState( animals: animals.slice(0, 6) )
您可以阅读更多关于Array.slice
以及如何移动数组部分的开始/结束的信息。
【讨论】:
【参考方案2】:看起来像这样吗? live demo
您可以使用Array.slice 来限制六个值。像这样。
state =
items: [2, 23, 2, 42, 232, 40, 90, 2342]
;
JSX
<ul>
<button onClick=this.handleClick>click</button>
<hr />
JSON.stringify(this.state.items)
</ul>
功能
handleClick = () =>
let randomVal = [Math.floor(Math.random() * 100),0,1,10,110,Math.floor(Math.random() * 100),23]
this.setState(
items: randomVal.slice(0,6)
);
;
【讨论】:
以上是关于嗨,我是 react native 的新手,我想知道如何限制将收到的状态值的主要内容,如果未能解决你的问题,请参考以下文章
请我需要帮助,我是 react-native-reanimated 的新手,我遇到以下错误
ClojureScript + React-Native - 嵌入视频