流错误:无法从值位置引用类型`updatePreviewSelection` [1]

如何解决流错误:无法从值位置引用类型`updatePreviewSelection` [1]

我的纱线流量控制台出现错误。我对它实际告诉我做什么感到有些困惑?我对为什么我的参考资料找不到该职位的价值感到困惑。

无法从值位置引用类型updatePreviewSelection 1

enter image description here

import * as React from 'react';
 
import explicitConnect from '../../utils/connect';
import { FlameGraphCanvas } from './Canvas';
import {
  getCategories,getCommittedRange,getPreviewSelection,getScrollToSelectionGeneration,getProfileInterval,getPageList,} from '../selectors/profile';
import { selectedThreadSelectors } from '../selectors/per-thread';
import {
  getSelectedThreadsKey,getInvertCallstack,} from '../../selectors/url-state';
import { ContextMenuTrigger } from '../components/shared/ContextMenuTrigger';
import { getCallNodePathFromIndex } from '../../profile-logic/profile-data';
import {
  changeSelectedCallNode,changeRightClickedCallNode,updatePreviewSelection,} from '../actions/profile-view';
import type {
  Thread,CategoryList,PageList,Milliseconds,StartEndRange,WeightType,SamplesLikeTable,PreviewSelection,CallTreeSummaryStrategy,CallNodeInfo,IndexIntoCallNodeTable,TracedTiming,ThreadsKey,} from '../types';
import type { FlameGraphTiming } from '../profile-logic/flame-graph';
 
import type { CallTree } from '../profile-logic/call-tree';
 
import type {
  ConnectedProps,WrapFunctionInDispatch,} from '../utils/connect';
 
import './FlameGraph.css';
 
const STACK_FRAME_HEIGHT = 16;
 
/**
 * How "wide" a call node box needs to be for it to be able to be
 * selected with keyboard navigation. This is a fraction between 0 and
 * 1,where 1 means the box spans the whole viewport.
 */
const SELECTABLE_THRESHOLD = 0.001;
 
type StateProps = {|
  +thread: Thread,+weightType: WeightType,+pages: PageList | null,+unfilteredThread: Thread,+previewSelection: PreviewSelection,+sampleIndexOffset: number,+maxStackDepth: number,+timeRange: StartEndRange,+flameGraphTiming: FlameGraphTiming,+callTree: CallTree,+callNodeInfo: CallNodeInfo,+threadsKey: ThreadsKey,+selectedCallNodeIndex: IndexIntoCallNodeTable | null,+rightClickedCallNodeIndex: IndexIntoCallNodeTable | null,+scrollToSelectionGeneration: number,+categories: CategoryList,+interval: Milliseconds,+isInverted: boolean,+callTreeSummaryStrategy: CallTreeSummaryStrategy,+samples: SamplesLikeTable,+unfilteredSamples: SamplesLikeTable,+tracedTiming: TracedTiming | null,|};
type DispatchProps = {|
  +changeSelectedCallNode: typeof changeSelectedCallNode,+changeRightClickedCallNode: typeof changeRightClickedCallNode,+updatePreviewSelection: WrapFunctionInDispatch<
    typeof updatePreviewSelection
  >,|};
type Props = ConnectedProps<{||},StateProps,DispatchProps>;
 
class FlameGraphImpl extends React.PureComponent<Props> {
  _viewport: HTMLDivElement | null = null;
 
  _onSelectedCallNodeChange = (
    callNodeIndex: IndexIntoCallNodeTable | null
  ) => {
    const { callNodeInfo,threadsKey,changeSelectedCallNode } = this.props;
    changeSelectedCallNode(
      threadsKey,getCallNodePathFromIndex(callNodeIndex,callNodeInfo.callNodeTable)
    );
  };
 
  _onRightClickedCallNodeChange = (
    callNodeIndex: IndexIntoCallNodeTable | null
  ) => {
    const { callNodeInfo,changeRightClickedCallNode } = this.props;
    changeRightClickedCallNode(
      threadsKey,callNodeInfo.callNodeTable)
    );
  };
 
  _shouldDisplayTooltips = () => this.props.rightClickedCallNodeIndex === null;
 
  _takeViewportRef = (viewport: HTMLDivElement | null) => {
    this._viewport = viewport;
  };
 
  focus = () => {
    if (this._viewport) {
      this._viewport.focus();
    }
  };
 
  /**
   * Is the box for this call node wide enough to be selected?
   */
  _wideEnough = (callNodeIndex: IndexIntoCallNodeTable): boolean => {
    const {
      flameGraphTiming,callNodeInfo: { callNodeTable },} = this.props;
 
    const depth = callNodeTable.depth[callNodeIndex];
    const row = flameGraphTiming[depth];
    const columnIndex = row.callNode.indexOf(callNodeIndex);
    return row.end[columnIndex] - row.start[columnIndex] > SELECTABLE_THRESHOLD;
  };
 
  /**
   * Return next keyboard selectable callNodeIndex along one
   * horizontal direction.
   *
   * `direction` should be either -1 (left) or 1 (right).
   *
   * Returns undefined if no selectable callNodeIndex can be found.
   * This means we're already at the end,or the boxes of all
   * candidate call nodes are too narrow to be selected.
   */
  _nextSelectableInRow = (
    startingCallNodeIndex: IndexIntoCallNodeTable,direction: 1 | -1
  ): IndexIntoCallNodeTable | void => {
    const {
      flameGraphTiming,} = this.props;
 
    let callNodeIndex = startingCallNodeIndex;
 
    const depth = callNodeTable.depth[callNodeIndex];
    const row = flameGraphTiming[depth];
    let columnIndex = row.callNode.indexOf(callNodeIndex);
 
    do {
      columnIndex += direction;
      callNodeIndex = row.callNode[columnIndex];
      if (
        row.end[columnIndex] - row.start[columnIndex] >
        SELECTABLE_THRESHOLD
      ) {
        // The box for this callNodeIndex is wide enough. We've found
        // a candidate.
        break;
      }
    } while (callNodeIndex !== undefined);
 
    return callNodeIndex;
  };
 
  _handleKeyDown = (event: SyntheticKeyboardEvent<HTMLElement>) => {
    const {
      threadsKey,callTree,selectedCallNodeIndex,changeSelectedCallNode,} = this.props;
 
    if (selectedCallNodeIndex === null) {
      if (
        ['ArrowDown','ArrowUp','ArrowLeft','ArrowRight'].includes(event.key)
      ) {
        // Just select the "root" node if we've got no prior selection.
        changeSelectedCallNode(
          threadsKey,getCallNodePathFromIndex(0,callNodeTable)
        );
      }
      return;
    }
 
    switch (event.key) {
      case 'ArrowDown': {
        const prefix = callNodeTable.prefix[selectedCallNodeIndex];
        if (prefix !== -1) {
          changeSelectedCallNode(
            threadsKey,getCallNodePathFromIndex(prefix,callNodeTable)
          );
        }
        break;
      }
      case 'ArrowUp': {
        const [callNodeIndex] = callTree.getChildren(selectedCallNodeIndex);
        // The call nodes returned from getChildren are sorted by
        // total time in descending order.  The first one in the
        // array,which is the one we pick,has the longest time and
        // thus the widest box.
 
        if (callNodeIndex !== undefined && this._wideEnough(callNodeIndex)) {
          changeSelectedCallNode(
            threadsKey,callNodeTable)
          );
        }
        break;
      }
      case 'ArrowLeft':
      case 'ArrowRight': {
        const callNodeIndex = this._nextSelectableInRow(
          selectedCallNodeIndex,event.key === 'ArrowLeft' ? -1 : 1
        );
 
        if (callNodeIndex !== undefined) {
          changeSelectedCallNode(
            threadsKey,callNodeTable)
          );
        }
        break;
      }
      default:
        // Other keys are ignored
        break;
    }
  };
 
  render() {
    const {
      thread,unfilteredThread,sampleIndexOffset,maxStackDepth,flameGraphTiming,callNodeInfo,timeRange,previewSelection,scrollToSelectionGeneration,callTreeSummaryStrategy,categories,interval,isInverted,pages,weightType,samples,unfilteredSamples,tracedTiming,} = this.props;
 
    const maxViewportHeight = maxStackDepth * STACK_FRAME_HEIGHT;
 
    return (
      <div className="flameGraphContent" onKeyDown={this._handleKeyDown}>
        <ContextMenuTrigger
          id="CallNodeContextMenu"
          attributes={‌{
            className: 'treeViewContextMenu',}}
        >
          <FlameGraphCanvas
            key={threadsKey}
            // ChartViewport props
            viewportProps={‌{
              timeRange,maxViewportHeight,maximumZoom: 1,startsAtBottom: true,disableHorizontalMovement: true,viewportNeedsUpdate,marginLeft: 0,marginRight: 0,containerRef: this._takeViewportRef,}}
            // FlameGraphCanvas props
            chartProps={‌{
              thread,stackFrameHeight: STACK_FRAME_HEIGHT,onSelectionChange: this._onSelectedCallNodeChange,onRightClick: this._onRightClickedCallNodeChange,shouldDisplayTooltips: this._shouldDisplayTooltips,}}
          />
        </ContextMenuTrigger>
      </div>
    );
  }
}
 
function viewportNeedsUpdate() {
  // By always returning false we prevent the viewport from being
  // reset and scrolled all the way to the bottom when doing
  // operations like changing the time selection or applying a
  // transform.
  return false;
}
 
export const FlameGraph = explicitConnect<{||},DispatchProps>({
  mapStateToProps: state => ({
    thread: selectedThreadSelectors.getFilteredThread(state),unfilteredThread: selectedThreadSelectors.getThread(state),weightType: selectedThreadSelectors.getWeightTypeForCallTree(state),sampleIndexOffset: selectedThreadSelectors.getSampleIndexOffsetFromCommittedRange(
      state
    ),maxStackDepth: selectedThreadSelectors.getCallNodeMaxDepthForFlameGraph(
      state
    ),flameGraphTiming: selectedThreadSelectors.getFlameGraphTiming(state),callTree: selectedThreadSelectors.getCallTree(state),timeRange: getCommittedRange(state),previewSelection: getPreviewSelection(state),callNodeInfo: selectedThreadSelectors.getCallNodeInfo(state),categories: getCategories(state),threadsKey: getSelectedThreadsKey(state),selectedCallNodeIndex: selectedThreadSelectors.getSelectedCallNodeIndex(
      state
    ),rightClickedCallNodeIndex: selectedThreadSelectors.getRightClickedCallNodeIndex(
      state
    ),scrollToSelectionGeneration: getScrollToSelectionGeneration(state),interval: getProfileInterval(state),isInverted: getInvertCallstack(state),callTreeSummaryStrategy: selectedThreadSelectors.getCallTreeSummaryStrategy(
      state
    ),pages: getPageList(state),samples: selectedThreadSelectors.getSamplesForCallTree(state),unfilteredSamples: selectedThreadSelectors.getUnfilteredSamplesForCallTree(
      state
    ),tracedTiming: selectedThreadSelectors.getTracedTiming(state),}),mapDispatchToProps: {
    changeSelectedCallNode,},options: { forwardRef: true },component: FlameGraphImpl,});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams[&#39;font.sans-serif&#39;] = [&#39;SimHei&#39;] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -&gt; systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping(&quot;/hires&quot;) public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate&lt;String
使用vite构建项目报错 C:\Users\ychen\work&gt;npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-
参考1 参考2 解决方案 # 点击安装源 协议选择 http:// 路径填写 mirrors.aliyun.com/centos/8.3.2011/BaseOS/x86_64/os URL类型 软件库URL 其他路径 # 版本 7 mirrors.aliyun.com/centos/7/os/x86
报错1 [root@slave1 data_mocker]# kafka-console-consumer.sh --bootstrap-server slave1:9092 --topic topic_db [2023-12-19 18:31:12,770] WARN [Consumer clie
错误1 # 重写数据 hive (edu)&gt; insert overwrite table dwd_trade_cart_add_inc &gt; select data.id, &gt; data.user_id, &gt; data.course_id, &gt; date_format(
错误1 hive (edu)&gt; insert into huanhuan values(1,&#39;haoge&#39;); Query ID = root_20240110071417_fe1517ad-3607-41f4-bdcf-d00b98ac443e Total jobs = 1
报错1:执行到如下就不执行了,没有显示Successfully registered new MBean. [root@slave1 bin]# /usr/local/software/flume-1.9.0/bin/flume-ng agent -n a1 -c /usr/local/softwa
虚拟及没有启动任何服务器查看jps会显示jps,如果没有显示任何东西 [root@slave2 ~]# jps 9647 Jps 解决方案 # 进入/tmp查看 [root@slave1 dfs]# cd /tmp [root@slave1 tmp]# ll 总用量 48 drwxr-xr-x. 2
报错1 hive&gt; show databases; OK Failed with exception java.io.IOException:java.lang.RuntimeException: Error in configuring object Time taken: 0.474 se
报错1 [root@localhost ~]# vim -bash: vim: 未找到命令 安装vim yum -y install vim* # 查看是否安装成功 [root@hadoop01 hadoop]# rpm -qa |grep vim vim-X11-7.4.629-8.el7_9.x
修改hadoop配置 vi /usr/local/software/hadoop-2.9.2/etc/hadoop/yarn-site.xml # 添加如下 &lt;configuration&gt; &lt;property&gt; &lt;name&gt;yarn.nodemanager.res