Я не могу найти способ установить для serializableCheck значение false только для определенного фрагмента.
const store = configureStore({
reducer: {
ApiSignalMenu: ApiSignalMenuSlice.reducer,
ApiSignalData: ApiSignalDataSlice.reducer,
ApiHistoricalMenu: ApiHistoricalMenuSlice.reducer,
ApiHistoricalYearData: ApiHistoricalYearDataSlice.reducer,
ApiUpProbabilityMenu: ApiUpProbabilityMenuSlice.reducer,
ApiUpProbabilityData: ApiUpProbabilityDataSlice.reducer,
ApiMoverData: ApiMoverDataSlice.reducer,
ApiChartingMenu: ApiChartingMenuSlice.reducer,
ApiChartingData: ApiChartingDataSlice.reducer,
ApiTicker: ApiTickerSlice.reducer
},
// middleware: (getDefaultMiddleware) =>
// getDefaultMiddleware({
// serializableCheck: false
// }
middleware: (getDefaultMiddleware) => getDefaultMiddleware({
serializableCheck: {
ignoredPaths: ['ApiMoverData.apiData.0'],
}
})
});
У меня есть данные массива в: АпиМоверДата
Если я установлю: ignoredPaths: ['ApiMoverData.apiData.0'],
Затем я снова получил ошибку для A в действии обнаружено несериализуемое значение по пути: payload.0
. Значение:, Апимовердата
И
Затем я снова получил ошибку для Затем я снова получил ошибку для Обнаружено несериализуемое значение в состоянии на пути: ApiMoverData.apiData.0
АпиМоверДата.апиДата.1, Затем снова АпиМоверДата.апиДата.2,.
Как установить для serializableCheck значение false для всех данных моего массива в определенном фрагменте?
Этот пост : Есть ли способ установить для serializableCheck значение false для одного редуктора только в редуксе?
конкретного ответа не сказал.
Благодарю вас
РЕДАКТИРОВАТЬ :
Данные моей структуры выглядят так:
Array [
ApiMoverData {
"change": "1,43",
"company": "Garuda Maintenance Facility Aero Asia Tbk.",
"id": 0,
"last": "71",
"ticker": "GMFI",
"value": "99.343.200",
"volume": "13.992",
},
ApiMoverData {
"change": "1,44",
"company": "Kimia Farma Tbk.",
"id": 1,
"last": "1.765",
"ticker": "KAEF",
"value": "956.208.000",
"volume": "5.433",
}
]
Если я установлю: ignoredPaths: ['ApiMoverData.apiData']
Затем я снова получил ошибку для A в действии обнаружено несериализуемое значение по пути: payload.0
. Значение:, Апимовердата
И
Затем я снова получил ошибку для Обнаружено несериализуемое значение в состоянии на пути: ApiMoverData.apiData.0
АпиМоверДата.апиДата.1, Затем снова АпиМоверДата.апиДата.2,.
Та же ошибка
Это не работает. у меня ошибка
«Я получил ошибку» не позволяет никому вам помочь. Какая ошибка?
@phry Я отредактировал свой вопрос. Пожалуйста, помогите проверить это для меня. Благодарю вас
Вместо того, чтобы просто выключить чеки, вы проверили Зачем, что данные не сериализуемы? Это экземпляры класса? Потому что у этого предупреждения обычно есть веская причина, и вы не должны хранить экземпляры классов в своем хранилище Redux, а должны делать их обычную копию объекта перед их сохранением.
@phry да, это экземпляры класса. Итак, каково решение?
Не храните экземпляры классов в Redux. Вот о чем все сообщение об ошибке. Возьмите данные из этого экземпляра класса, поместите их в объект JavaScript, не относящийся к классу, и сохраните их.
@phry да, проблема действительно использует экземпляр класса. Но я хочу использовать экземпляр класса uae, потому что он выглядит более аккуратно в коде. Но reduxtoolkit этого не позволяет. Вот почему я хочу отключить не сериализуемый, но я боюсь, что если я отключу сериализуемый глобальный, это повлияет отрицательно в будущем. Вот почему я хочу отключить только для определенного фрагмента в наборе инструментов Redux.
Это также будет иметь негативные последствия, если вы отключите его только для этого фрагмента: вы не сможете использовать redux-persist, другое промежуточное ПО может получить случайные ошибки, экземпляры класса не будут заморожены, поэтому они могут измениться внутри без запуска повторной визуализации, devtools может дать сбой. Это сообщение об ошибке имеет очень вескую причину. Второе сообщение об ошибке, которое вы получили, было связано с тем, что у вас есть эти значения не только в вашем магазине, но и в ваших действиях, поэтому вам придется исключить как состояние, так и действие.
@phry Спасибо за объяснение. Кажется, я должен изменить данные модели и использовать простой массив или данные объекта без экземпляра класса.
рекомендуется @phry не использовать экземпляр класса в redux-toolkit. Потому что это повлияет негативно в будущем. Также мы не сможем использовать Redux-Persist. Просто используйте объект javascript, не относящийся к классу, и сохраните его.
ignoredPaths: ['ApiMoverData.apiData']