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.
Saya telah menonaktifkan pekerja dengan setOptions={{useWorker: false}}
, tetapi ini juga menonaktifkan anotasi yang dilakukan secara manual.
Terima kasih!
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}
/>
}
Komentar yang paling membantu
Alih-alih menggunakan
annotations
prop, saya secara manualsetAnnotations
.