小编Sak*_*oor的帖子

在React v16.6中如何在新的CONTEXT API中获取多个静态上下文

嗨,我正在尝试访问组件中的多个上下文,但是我仅从提供者那里获得了一个上下文值就获得了成功。有两个提供者ListContext和`MappingContext。我如何访问这样的上下文:

class TableData extends React.Component {
 static contextType = ListContext;
 static contextType = MappingContext;

 componentDidMount() {
   const data = this.context // it will have only one context from ListContext
  }
Run Code Online (Sandbox Code Playgroud)

我知道我可以在render()中使用多个提供程序,但我想访问上面的上下文。任何帮助将不胜感激。

谢谢

javascript reactjs

8
推荐指数
2
解决办法
2628
查看次数

函数和无状态组件之间的区别?

以下两个示例显然导致完全相同的代码.

示例1(React child):

const Child = ({ item: { startedAt, count } }) => (
  <div>
    <div>{startedAt}</div>
    <div>{count}</div>
  </div>
)

const Parent = items => {
  return (
    <div>
      {items.map((item, index) => (
        <Child key={item.id} item={item} />
      ))}
    </div>
  )
}

export default Parent
Run Code Online (Sandbox Code Playgroud)

例2(函数子):

const child = ({ id, startedAt, count }) => (
  <div key={id}>
    <div>{startedAt}</div>
    <div>{count}</div>
  </div>
)

const Parent = items => {
  return <div>{items.map(child)}</div>
}

export default Parent
Run Code Online (Sandbox Code Playgroud)

为什么选择示例1,即React组件?功能示例有什么好处吗?

javascript reactjs

5
推荐指数
1
解决办法
100
查看次数

如何在ComponentDidUpdate中比较与Redux连接的大型数据结构的属性

我一直在使用React v16的新生命周期。当我们仅比较单个键时,它的效果很好。但是,当要比较大型数据结构(如对象数组)时,深度比较将变得非常昂贵。

我有这样的用例,其中我有一个数组ob对象存储在redux中,

const readings =[
{
id: ...,
name: ...',
unit:...,
value: ...,
timestamp: ...,
active: true,
 },
 ...
]
Run Code Online (Sandbox Code Playgroud)

每当任何对象的活动状态发生变化时,我都会调度一个操作,以将所有与该化简器连接的组件的redux状态更新为相同。

class Readings extends Component {
  state = {
    readings:[],
  };

  static getDerivedStateFromProps(nextProps, prevState) {
    if ( // comparsion of readings array with prevState) {
      return {
        readings: nextProps.readings,
      };
    }
    return null;
  }

  componentDidUpdate(prevProps) {
    if ( // comparsion of readings array with prevState) {
      // perform an operation here to manipulate new props and setState to re …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs redux

0
推荐指数
1
解决办法
2186
查看次数

标签 统计

javascript ×3

reactjs ×3

redux ×1