React-ace: Anotasi manual dihapus oleh pekerja

Dibuat pada 2 Jul 2018  ·  5Komentar  ·  Sumber: securingsincity/react-ace

Masalah

Saya sedang merender komponen react-ace dengan annotations seperti ini:

<ReactAce
  mode={'javascript'}
  // ...
  annotations={[{row: 0, column: 0, type: 'error', text: 'Some error.'}]}
/>

Anotasi manual akan muncul sebentar, lalu dihapus setelah pekerja berjalan.
Gif ini menunjukkan penyegaran halaman. Pada setiap pemuatan halaman, anotasi muncul, tetapi kemudian dihapus.
annotation

Saya telah menonaktifkan pekerja dengan setOptions={{useWorker: false}} , tetapi ini juga menonaktifkan anotasi yang dilakukan secara manual.

Terima kasih!

Documentation

Komentar yang paling membantu

Alih-alih menggunakan annotations prop, saya secara manual setAnnotations .

const Editor = ({ annotations: customAnnotations = [], value }) => {
  const [annotations, setAnnotations] = useState([]);
  const [editor, setEditor] = useState();

  const nextAnnotations = [
    ...annotations.filter(({ custom }) => !custom),  // annotations by worker
    ...customAnnotations.map((annotation) => ({ ...annotation, custom: true })) // flag for exclusion
  ];

  useEffect(() => {
    if (editor) {
      editor.getSession().setAnnotations(nextAnnotations);
    }
  }, [editor, JSON.stringify(nextAnnotations)]);

  return (
    <ReactAce
      mode="html"
      onLoad={setEditor}
      onValidate={setAnnotations}
      setOptions={{ useWorker: true }}
      value={value}
   />
}

Semua 5 komentar

Saya merasa harus ada 2 set anotasi. Anotasi yang ditambahkan secara manual dan yang dihasilkan oleh pengurai mode. Saya pikir mereka saat ini bertabrakan dan menghapus satu sama lain ...

ya, itulah yang terjadi. saya tidak yakin apakah mungkin ada anotasi di luar siklus hidup pekerja atau tidak.

Saya menghadapi tantangan yang sama.
Saya ingin dapat menambahkan anotasi khusus ke editor, sambil tetap mempertahankan anotasi oleh pekerja.

Setelah saya menyetel anotasi khusus saya, anotasi pekerja menimpa anotasi saya.
Saya telah melihat saran untuk menonaktifkan pekerja seperti itu.

setOptions={{useWorker: false}}

Namun, melakukan ini menonaktifkan anotasi pekerja sehingga semua penyorotan linting/sintaks saya hilang. (tidak seperti yang saya inginkan)

Saya ingin dapat menggabungkan anotasi pekerja dengan anotasi khusus saya.

Dapatkah seseorang menyarankan bagaimana untuk pergi tentang ini?

Hai , saya dalam situasi yang sama, tidak dapat menambahkan pesan kesalahan khusus. Ada solusi?

Alih-alih menggunakan annotations prop, saya secara manual setAnnotations .

const Editor = ({ annotations: customAnnotations = [], value }) => {
  const [annotations, setAnnotations] = useState([]);
  const [editor, setEditor] = useState();

  const nextAnnotations = [
    ...annotations.filter(({ custom }) => !custom),  // annotations by worker
    ...customAnnotations.map((annotation) => ({ ...annotation, custom: true })) // flag for exclusion
  ];

  useEffect(() => {
    if (editor) {
      editor.getSession().setAnnotations(nextAnnotations);
    }
  }, [editor, JSON.stringify(nextAnnotations)]);

  return (
    <ReactAce
      mode="html"
      onLoad={setEditor}
      onValidate={setAnnotations}
      setOptions={{ useWorker: true }}
      value={value}
   />
}
Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

avalkowsky picture avalkowsky  ·  6Komentar

viridia picture viridia  ·  4Komentar

tsmirnov picture tsmirnov  ·  4Komentar

ponelat picture ponelat  ·  3Komentar

venil7 picture venil7  ·  3Komentar