Reactjs 导航详细信息使用Monaco editor无法列出

Reactjs 导航详细信息使用Monaco editor无法列出,reactjs,monaco-editor,office-ui-fabric,fluent-ui,Reactjs,Monaco Editor,Office Ui Fabric,Fluent Ui,您好,我正在使用,我希望能够使用选项卡将我的选择从一列移动到另一列。 但我在Github上遇到了这个问题: 箭头键需要用于在列表中导航,但不幸的是,我在列表中使用了一个编辑器,而箭头键被阻止在编辑器中 我想知道是否有办法禁用列表,将TabIndex设置为-1 或 如果光标位于文本末尾(如文本框),则可以释放箭头键 根据以下原理,我得到了一些有用的东西: 收听摩纳哥编辑台上的活动 识别插入符号的名称 了解 获取一个字符串 摩纳哥编辑的焦点 知道这些之后,您可以检查插入符号是否位于最后一行的末尾,

您好,我正在使用,我希望能够使用选项卡将我的选择从一列移动到另一列。 但我在Github上遇到了这个问题:

箭头键需要用于在列表中导航,但不幸的是,我在列表中使用了一个编辑器,而箭头键被阻止在编辑器中

我想知道是否有办法禁用列表,将TabIndex设置为-1

如果光标位于文本末尾(如文本框),则可以释放箭头键


根据以下原理,我得到了一些有用的东西:

  • 收听摩纳哥编辑台上的活动
  • 识别插入符号的名称
  • 了解
  • 获取一个字符串
  • 摩纳哥编辑的焦点
  • 知道这些之后,您可以检查插入符号是否位于最后一行的末尾,并在用户按向右箭头键时移动焦点。我还添加了代码来检查插入符号何时处于最开始位置,并将焦点移到左侧的单元格

    这就是我最终得到的代码

    import*as React from“React”;
    导入“/styles.css”;
    从“@fluentui/react”导入{DetailsList,IColumn};
    从“编辑器”导入MonacoEditor;
    导出默认函数App(){
    常量列:IColumn[]=[
    {
    键:“名称”,
    最小宽度:50,
    最大宽度:50,
    姓名:“姓名”,
    onRender:(项目,索引)=>(
    )
    },
    {
    键:“类型”,
    最小宽度:200,
    名称:“类型”,
    onRender:(项目,索引)=>{
    返回(
    {
    编辑器.onKeyDown((事件)=>{
    如果(event.code==“ArrowRight”){
    const{column,lineNumber}=editor.getPosition();
    const model=editor.getModel();
    if(lineNumber==model?.getLineCount()){
    const lastString=model?.getLineContent(行号);
    如果(列>最后一个字符串?.length){
    const nextInput=document.getElementById(
    `默认值行-${index}`
    );
    (nextInput作为HTMLInputElement.focus();
    }
    }
    }
    如果(event.code==“箭头左”){
    const{column,lineNumber}=editor.getPosition();
    如果(行号===1&&列===1){
    const previousInput=document.getElementById(
    `名称行-${index}`
    );
    (以前输入为HTMLInputElement.focus();
    }
    }
    });
    }}
    值={item.type}
    />
    );
    }
    },
    {
    键:“defaultValue”,
    最小宽度:100,
    名称:“默认值”,
    onRender:(项目,索引)=>(
    )
    }
    ];
    const items=[{name:“name”,type:“type”,defaultValue:“name”}];
    返回;
    }
    
    您可以看到它在这个代码沙盒中工作

    摩纳哥编辑器似乎很复杂,可能您必须改进此代码以支持其他交互(例如:我不知道在折叠代码时是否有效)