反应视图不根据数据更改重新呈现

时间:2018-10-18 23:57:13

标签: reactjs

我想知道如何才能知道count的db值已更改并相应地更新视图。我是否必须在类中具有数据库调用的函数来手动强制状态或属性更改,或者是否有办法以某种方式响应以轮询数据或知道何时更改数据?

StreamBackedBinaryStream

2 个答案:

答案 0 :(得分:1)

如果您要采用问题中提到的基于轮询的方法,则可以通过以下方式实现:

links

答案 1 :(得分:0)

默认情况下,当组件的状态或道具更改时,组件将重新渲染。如果您的render()方法依赖于其他数据,则可以通过调用forceUpdate()来告诉React该组件需要重新渲染。

反应文档:https://reactjs.org/docs/react-component.html#forceupdate

import React from 'react';
import { DB } from '../../backend/db';

export default class Home extends React.Component {
  testCount() {
    DB.testCount();
    this.forceUpdate();
  }

  render() {
    return (
      <div>
          Hello World!
          <button onClick={() => this.testCount()}>
            Click me!
          </button>
          <CountView count={DB.getCount()} />
      </div>
    );
  }
}

...