【问题标题】:I want to change progressBarProgress value我想更改进度条进度值
【发布时间】:2018-08-05 18:59:23
【问题描述】:
const Loader = props => {
 const {
loading,
progressBarProgress=0.00250,
PleaseWait,
...attributes
 } = props;

 changeProgress = () =>
 {
this.value= setInterval( () => {
  if(progressBarProgress <= 1)
  {
    console.info(progressBarProgress+.10)
  }
    }, 100 );
  }

我正在尝试使用进度条创建加载,我想更改 progressBar 带间隔的值

【问题讨论】:

  • 这是一个const,我怀疑你可以修改它。
  • 使用let 而不是const
  • 如果你想修改使用 let 而不是 const
  • @ManojBhardwaj:根据您最初的问题,您会拥有的。请不要大喊大叫。

标签: javascript react-native ecmascript-6 setinterval


【解决方案1】:

你不能。这(来自您编辑的问题):

const Loader = props => {
    const {
        loading,
        progressBarProgress=0.00250,
        PleaseWait,
        ...attributes
    } = props;
    // ...

...定义常量。你的常量就是:常量。同样,它们无法更改。

如果您希望能够更改它们,请使用 let 而不是 const 作为您希望能够更改的那些。


然而:我怀疑你需要重新审视你的整体设计;如果这个Loader 的状态会随着时间而变化,那么您不想将它定义为这样的无状态功能组件(SFC)。您可以使用由其父级重新渲染的 SFC 以及更新的 progressBarProgress 属性,或者您可以使用接受 initial 进度属性的非 SFC (class Loader extends React.Component...)但随后更新自己的状态(通过setState)。但是,到目前为止,您所展示的结果是混合 SFC-but-with-state 无法正常工作。

【讨论】:

  • 我也在使用带有加载器的进度条,所以我必须为此设置计时器
  • @ManojBhardwaj:是的,但同样,您不能使用状态变化的 SFC。您可以使用由其父级重新渲染的 SFC,也可以使用更新其自身状态的非 SFC。这种混合体行不通。
  • 我可以在这里使用构造函数
  • @ManojBhardwaj:是的。同样,如果它要更新自己而不是由其父更新,您将希望使其成为组件类。请参阅文档以了解如何执行此操作。或者,再次让父母使用更新的道具更新它。
  • 现在我正在使用让但progressBarProgress 没有更新
【解决方案2】:

您可以按如下方式更新 const 对象属性..

const pInfo = {
    loading:false,
    progressBarProgress:1.05
};
setTimeout(()=>{++pInfo.progressBarProgress;},1000);

【讨论】:

  • 它不是一个对象。
  • 我不认为问题在于如何更新常量对象引用上的属性;问题是如何更新常量。
  • 在上面的问题中很清楚“如何在 javascript 中更新 const 的值”,而@Manoj Bhardwaj 要求“想要更新 progressBarProgress 值”。所以我回答了。
  • 感谢 Omprakash Sharma 的努力
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-07-18
  • 2016-11-02
  • 2020-11-05
  • 1970-01-01
  • 1970-01-01
  • 2013-03-08
  • 1970-01-01
相关资源
最近更新 更多