富文本編輯器 draft.js(一)

鍵值綁定(翻譯)

Editor組件通過keyBindingFn為你的編輯器提供了靈活地自定義鍵值綁定漏设。

默認(rèn):
getDefaultKeyBinding默認(rèn)鍵值綁定函數(shù)。

因為draft框架嚴(yán)格控制DOM渲染和行為,基本編輯命令必須通過鍵值綁定系統(tǒng)捕獲和轉(zhuǎn)換休建。

getDefaultKeyBinding與已知命令DraftEditorCommand字符串os級別的編輯器相匹配,這個字符串對應(yīng)了組件處理的行為。

例如,Ctrl + Z(Win)和Cmd + Z(OSX)映射到“撤消”命令,然后交給處理程序執(zhí)行EditorState.undo()顷链。

定制:

你可以提供你自己的鍵值綁定函數(shù)來提供定制命令字符串入录。

建議你的函數(shù)使用getDefaultKeyBinding作為獲取定制失敗的選擇,這樣你可能受益于默認(rèn)的命令。

使用您的自定義命令字符串,您可以實現(xiàn)handleKeyCommand屬性功能,它允許您使用字符串映射到你想要的行為图焰。如果handleKeyCommand返回“處理”,被認(rèn)為是處理的命令。如果它返回“未處理”,被認(rèn)為是未處理的命令蹦掐。

例子

假設(shè)我們可以先預(yù)存一個myeditor-save的鍵值綁定命令

首先,讓我們定義鍵值綁定功能:

import {getDefaultKeyBinding, KeyBindingUtil} from 'draft-js';
const {hasCommandModifier} = KeyBindingUtil;

function myKeyBindingFn(e: SyntheticKeyboardEvent): string {
  if (e.keyCode === 83 /* `S` key */ && hasCommandModifier(e)) {
    return 'myeditor-save';
  }
  return getDefaultKeyBinding(e);
}

函數(shù)接收一個關(guān)鍵事件,我們檢查它是否符合我們的標(biāo)準(zhǔn):它必須是一個S鍵,(keycode83對應(yīng)鍵盤上的 S)并且它必須有一個命令修飾符,即在OSX里面是 cmd,其他的則為 ctrl 控制鍵技羔。

即 OSX 為 cmd+S ,WIN 為 ctrl+S,

如果命令是一個匹配,返回一個字符串的命令名稱。否則,使用默認(rèn)的鍵值綁定卧抗。

在我們的編輯器組件,我們可以利用命令通過handleKeyCommand屬性:

import {Editor} from "draft-js";
class MyEditor extends React.Component {
  // ...

  handleKeyCommand(command: string): DraftHandleValue {
    if (command === "myeditor-save") {
      // Perform a request to save your contents, set
      // a new `editorState`, etc.
      return "handled";
    }
    return "not-handled";
  }

  render() {
    return (
      <Editor
        editorState={this.state.editorState}
        handleKeyCommand={this.handleKeyCommand.bind(this)}
        keyBindingFn={myKeyBindingFn}
        ...
      />
    );
  }
}

“myeditor-save”命令可用于我們的習(xí)慣行為,并返回“handled” 告訴編輯器命令已經(jīng)被處理了.

通過返回"not-handled"的情況下,默認(rèn)的命令能夠使用默認(rèn)處理行為藤滥。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市社裆,隨后出現(xiàn)的幾起案子超陆,更是在濱河造成了極大的恐慌,老刑警劉巖浦马,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異张漂,居然都是意外死亡晶默,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進店門航攒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來磺陡,“玉大人,你說我怎么就攤上這事漠畜”宜” “怎么了?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵憔狞,是天一觀的道長蝴悉。 經(jīng)常有香客問我,道長瘾敢,這世上最難降的妖魔是什么拍冠? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任尿这,我火速辦了婚禮,結(jié)果婚禮上庆杜,老公的妹妹穿的比我還像新娘射众。我一直安慰自己,他們只是感情好晃财,可當(dāng)我...
    茶點故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布叨橱。 她就那樣靜靜地躺著,像睡著了一般断盛。 火紅的嫁衣襯著肌膚如雪罗洗。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天郑临,我揣著相機與錄音栖博,去河邊找鬼。 笑死厢洞,一個胖子當(dāng)著我的面吹牛仇让,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播躺翻,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼丧叽,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了公你?” 一聲冷哼從身側(cè)響起踊淳,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎陕靠,沒想到半個月后迂尝,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡剪芥,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年垄开,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片税肪。...
    茶點故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡溉躲,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出益兄,到底是詐尸還是另有隱情锻梳,我是刑警寧澤,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布净捅,位于F島的核電站疑枯,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏蛔六。R本人自食惡果不足惜神汹,卻給世界環(huán)境...
    茶點故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一庆捺、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧屁魏,春花似錦滔以、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至桃漾,卻和暖如春坏匪,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背撬统。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工适滓, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人恋追。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓凭迹,卻偏偏與公主長得像,于是被迫代替她去往敵國和親苦囱。 傳聞我的和親對象是個殘疾皇子嗅绸,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,060評論 2 355

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)撕彤,斷路器鱼鸠,智...
    卡卡羅2017閱讀 134,665評論 18 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,823評論 6 342
  • 好種子:早上妹妹再一次的睡了個整夜覺,直到6點20才找奶吃羹铅,吃好奶繼續(xù)睡蚀狰,而我剛好到起床的時間,一切都是剛剛好职员!非...
    成長中的小蝸牛閱讀 169評論 2 1
  • 李家老太造锅,我的母親,退休的人們教師廉邑。今天是她老人家79周歲生辰,今天我許了一個愿望倒谷,希望明年的今天依然這樣蛛蒙,全家四...
    李小五閱讀 575評論 10 2
  • 美不是你的全部, 你還那么靦腆渤愁。 怯生生一窺牵祟, 紫了衣衫, 醉了春夏抖格。
    宗林的李閱讀 354評論 3 2