Форум программистов, компьютерный форум, киберфорум
React/ReactJS
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 0
Регистрация: 15.12.2020
Сообщений: 31

Неверно сохраняется статья

12.07.2025, 18:03. Показов 1211. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброе время суток, пишу программу Блог (набор статей). При сохранении статьи появляется следующая информация (выделено жирным шрифтом):
PHP/HTML
1
<p class="text-justify" style="margin: 0px 0px 10px; color: rgb(51, 51, 51); font-family: &quot;Source Sans Pro&quot;; font-size: 14px; white-space-collapse: collapse;">
Текст абзаца статьи……………………………….
PHP/HTML
1
</p>
Так каждый абзац статьи «оборачивает» кодом.

Не подскажите что сделать, что бы этот код не появлялся? Спасибо!
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.07.2025, 18:03
Ответы с готовыми решениями:

Валидация: сообщение Error появляется только, когда неверно введен первый символ
&lt;!doctype html&gt; &lt;html ng-app=&quot;Registr&quot;&gt; &lt;head&gt; &lt;script...

Посмотреть решение и ответить, неверно нарисовала момент или неверно посчитана работа?
Здравствуйте... Решала задачу по динамике. Нужно найти скорость тела 1 (это ползун). Расстояние,...

Неверно преобразовываю ряд, или же неверно записываю его в код
Задание:Для заданного с консоли значения n определить сумму числового ряда: s=\sum...

7
Супер-модератор
Эксперт JSЭксперт HTML/CSSЭксперт PHP
 Аватар для gogolik
3953 / 2064 / 829
Регистрация: 13.03.2010
Сообщений: 6,786
12.07.2025, 23:47
Den1111, написать код, чтобы этот код не появлялся. А вот какой - не знаю, хрустальный шар для гадания о вашем коде, библиотеках и прочем в ремонте.
1
Молодой техлид)
Эксперт JSЭксперт HTML/CSS
 Аватар для mr_dramm
1818 / 1056 / 329
Регистрация: 17.07.2021
Сообщений: 2,147
Записей в блоге: 14
13.07.2025, 09:30
Den1111, опиши весь стек и код конечно не то что сгенерирован, а тот что генерирует, пока даже не понятно почему React
1
1 / 1 / 0
Регистрация: 15.12.2020
Сообщений: 31
13.07.2025, 18:39  [ТС]
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
………………………………………..
const PostFormContainer = ({
    className,
    post: { id, title, imageUrl, content, publishedAt },
}) => {
    const imageRef = useRef(null);
    const titleRef = useRef(null);
    const contentRef = useRef(null);
    const dispatch = useDispatch();
    const navigate = useNavigate();
    const requestServer = useServerRequest();
 
    ……………………………………………….
 
 
    const onSave = () => {
        const newImageUrl = imageRef.current.value;
        const newTitle = titleRef.current.value;
        const newContent = sanitizeContent(contentRef.current.innerHTML);
 
        dispatch(
            savePostAsync(requestServer, {
                id,
                imageUrl: newImageUrl,
                title: newTitle,
                content: newContent,
            }),
        ).then(() => navigate(`/post/${id}`));
    };
 
    return (
        <div className={className}>
            <Input ref={imageRef} defaultValue={imageUrl} placeholder="Изображение..." />
            <Input ref={titleRef} defaultValue={title} placeholder="Заголовок..." />
            <div className="special-panel">
                <div className="published-at">
                    {publishedAt && (
                        <Icon
                            inactive={true}
                            id="fa-calendar-o"
                            margin="0 7px 0 0"
                            size="18px"
                        />
                    )}
                    {publishedAt}
                </div>
                <div className="buttons">
                    <Icon
                        id="fa-floppy-o"
                        size="18px"
                        onClick={onSave}
                    />
            …………………………………………
                </div>
            </div>
            <div
                ref={contentRef}
                contentEditable={true}
                suppressContentEditableWarning={true}
                className="post-text"
            >
                {content}
            </div>
        </div>
    );
};
 
export const PostForm = styled(PostFormContainer)`
    …………………………………
`;
0
Молодой техлид)
Эксперт JSЭксперт HTML/CSS
 Аватар для mr_dramm
1818 / 1056 / 329
Регистрация: 17.07.2021
Сообщений: 2,147
Записей в блоге: 14
14.07.2025, 11:16
предполагаю на сервере контент обрабатывается т.е. каждый обзац оборачивается в тег p со стилями

нужно учесть особенность работы с JSX в react

если сделать так

JavaScript
1
2
3
4
5
6
const content = `<p>Content</p>`
function App() {
  return <div>{content }</div>;
}
 
export default App;
то этот контент
HTML5
1
<p>Content</p>
преобразуется в такой контент
Code
1
<div>&lt;p&gt;Content&lt;/p&gt;</div>
и соответственно на странице мы увидим html теги

чтобы не происходило обработки нужно передавать контент через свойство dangerouslySetInnerHTML которое работает аналогично element.innerHTML = ... в обычном JS/DOM

JavaScript
1
2
3
4
const content = `<p>Content</p>`
function App() {
  return <div dangerouslySetInnerHTML={{__html: content}}></div>;
}

Альтернативно можно убрать обработку контента на сервере и сделать парсинг обзацев на фронте
1
1 / 1 / 0
Регистрация: 15.12.2020
Сообщений: 31
14.07.2025, 17:50  [ТС]
К сожалению, не получается.
0
Молодой техлид)
Эксперт JSЭксперт HTML/CSS
 Аватар для mr_dramm
1818 / 1056 / 329
Регистрация: 17.07.2021
Сообщений: 2,147
Записей в блоге: 14
15.07.2025, 00:33
Лучший ответ Сообщение было отмечено Den1111 как решение

Решение

Цитата Сообщение от Den1111 Посмотреть сообщение
К сожалению, не получается.
что именно?)

проблема может быть в том что редирект про исходит по маршруту /post/${id}
и на этом маршруте другой компонент отображает контент т.е. не PostFormContainer и в этом другом компоненте нужно прописать angerouslySetInnerHTML={{__html: content}} в элементе в который приходит content

покажи как сделан маршрутизатор и компонент который находится по маршруту /post/${id}

для компонента PostFormContainer тоже нужно указать свойство dangerouslySetInnerHTML тут

JavaScript
1
2
3
4
5
6
7
8
9
            <div
                ref={contentRef}
                contentEditable={true}
                suppressContentEditableWarning={true}
                className="post-text"
                dangerouslySetInnerHTML={{__html: content}} // тут добавить
            >
                // тут теперь {content} не должно быть
            </div>
так как он принимает контент в пропсах
1
1 / 1 / 0
Регистрация: 15.12.2020
Сообщений: 31
15.07.2025, 20:27  [ТС]
Всё сработало! Я так и прописывал dangerouslySetInnerHTML={{__html: content}}, как ты советовал, но только в одном компоненте и в том окне мусор пропадал (за который этот компонент отвечал). Мусор появлялся в другом окне, конечном. Прописал в другом компоненте (отвечающем за конечное окно), мусор исчез везде. Всё как надо! Благодарю!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.07.2025, 20:27
Помогаю со студенческими работами здесь

Статья из Х.О.З.Е. про ВОВ
Х.О.З.Е. - Хек Одепторский Зироди Езинос. ВОВ - не игра - Великая Отечественная Война ...

статья 1989 года про windows
Нашел в интернете забавную картинку. Картинка представляет собой вырезку из журнала &quot;Радио и связь&quot;...

Статья : Авторизация и аутентификация на сайтах, через WinInet
Данную статью написал сегодня на работе, пишу статью в 1 раз так что не обессудьте))),перейдя по...

Тунель для охлаждения ЦП. Статья!
Нашел интересную статью по охлаждению, она устарела, но такой метод можно использовать и с...

Супер кулер от ZALMAN. Статья!
Новый супер кулер от ZALMAN, для экстримального охлаждения. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru