React-Quill自定义保存按钮到Firebase

福法斯特

好的,所以我试图构建一个基于React的Notes应用程序,该应用程序可以保存到Firebase。我将React-Quill用作文本编辑器,当前,当我单击插入到工具栏的自定义保存图标时,无法将编辑器的数据发送到Firebase。我整天都在搞这件事,现在我觉得自己只是在扯头发以尝试完成这项工作。如果有人可以查看此组件并帮助我弄清楚这一点,我将非常感激。

import React, { Component } from 'react'
import ReactQuill from 'react-quill'
import 'react-quill/dist/quill.snow.css'
import fire from '../../firebase'
import * as Icon from 'react-feather'

const CustomButton = () => <Icon.Save onClick={NoteEditor.modules.toolbar.handlers.writeUserNotes} />

const CustomToolbar = () => (
  <div id='toolbar'>
    <select className='ql-header' defaultValue={''} onChange={e => e.persist()}>
      <option value='1' />
      <option value='2' />
      <option selected />
    </select>
    <button className='ql-bold' />
    <button className='ql-italic' />
    <select className='ql-color'>
      <option value='red' />
      <option value='green' />
      <option value='blue' />
      <option value='orange' />
      <option value='violet' />
      <option value='#d0d1d2' />
      <option selected />
    </select>
    <button className='ql-save'>
      <CustomButton />
    </button>
  </div>
)

export default class NoteEditor extends Component {
  constructor (props) {
    super(props)
    this.state = { text: '' }
    this.handleChange = this.handleChange.bind(this)
  }

  writeUserNotes (user) {

  }

  handleChange (value) {
    this.setState({ text: value })
  }

  render () {
    return (
      <div className='text-editor w-80'>
        <CustomToolbar />
        <ReactQuill
          onChange={this.handleChange}
          modules={NoteEditor.modules}
          formats={NoteEditor.formats}
          theme={'snow'}
        />
      </div>
    )
  }
}

NoteEditor.modules = {
  toolbar: {
    container: '#toolbar',
    handlers: {
      writeUserNotes: () => {
        fire.database().ref('/notes').set({
          note: 
        })
      }
    }
  },
  clipboard: {
    matchVisual: false
  }
}

NoteEditor.formats = [
  'header',
  'font',
  'size',
  'bold',
  'italic',
  'underline',
  'strike',
  'blockquote',
  'list',
  'bullet',
  'indent',
  'link',
  'image',
  'color'
]

阿纳斯

我要处理的方式是使用包装器,例如:

class App extends React.Component {
  state = {
    notes: '',
  }

  handleChange = (notes) => { 
     this.setState({ notes }) 
  }

  handleClick = () => { 
    fire.database().ref('/notes').set({
      note: this.state.notes
    })
  }

  render () {
    return (
      <div>
        <CustomToolbar onClick={this.handleClick} />
        <NoteEditor onChange={this.handleChange} />
      </div>
    )
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何自定义React Native按钮

React-Native自定义按钮

React + Firebase + 自定义 PHP API?

使用自定义按钮组件将Typeform嵌入到React中

TinyMCE React内容自定义按钮为空

React Native 中的自定义单选按钮

react-Native上的自定义形状按钮

如何在 React 中自定义 Reactstrap 按钮?

CK editor5 React - 添加自定义按钮

Expo:React Native 中 VideoPlayer 上的自定义按钮

React Native 自定义切换按钮组件

在React中创建自定义输入类型文件按钮

从React Native中的自定义按钮更改状态

react-native-navigation导航器是未定义的自定义按钮

React 中自定义字段的自定义验证

如何在滑块 React.js 之外添加自定义按钮组

如何在React Native中向标题添加自定义标题和按钮?

带有 React-leaflet version3 的传单地图上的自定义按钮

React Material UI:禁用后如何为按钮提供自定义颜色?

react bootstrap-向按钮添加自定义bsStyle属性

使用React JS创建一个自定义单选按钮

是否可以在react-native-router-flux中向NavBar添加自定义按钮?

如何将自定义道具传递给React登录按钮

Wix React-Native-Navigation:onPress用于自定义组件按钮

在React Typescript中创建一个自定义按钮并添加onClick事件

带有 React Native Video 的自定义播放/暂停按钮 - 获取 JSON 值错误消息

Facebook SDK和自定义按钮无法在React-native 0.60+中登录

无法在React-Leaflet中获得自定义缩放按钮

react-navigation的标签导航器特定标签按钮上的自定义导航操作