嗨,我是 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 - 嵌入视频

React Native 中一个组件的多个实例

React Native 输出数字格式

嗨,我对 React Native Firebase 有疑问

React Native:本机模块不返回任何内容