feat: 优化 useTradingView 函数,深拷贝初始化选项和用户选项以避免引用问题
This commit is contained in:
@@ -2,7 +2,7 @@ import type { Awaitable } from "@vueuse/core";
|
||||
import type { ChartOptions, DeepPartial, IChartApi, ISeriesApi, LayoutOptions, OhlcData, SeriesDataItemTypeMap, SeriesType } from "lightweight-charts";
|
||||
import type { ThemeMode } from "./useTheme";
|
||||
import { AreaSeries, BarSeries, BaselineSeries, CandlestickSeries, ColorType, createChart, HistogramSeries, LineSeries } from "lightweight-charts";
|
||||
import { mergeWith } from "lodash-es";
|
||||
import { cloneDeep, mergeWith } from "lodash-es";
|
||||
|
||||
export type Series = "Area" | "Bar" | "Baseline" | "Candlestick" | "Histogram" | "Line";
|
||||
|
||||
@@ -63,7 +63,7 @@ function getChartSeriesDefinition(type: Series) {
|
||||
const { isDark } = useTheme();
|
||||
|
||||
export function useTradingView(target: MaybeRefOrGetter<HTMLElement | null>, options?: TradingViewOptions) {
|
||||
const opts: Required<TradingViewOptions> = mergeWith(initializeOptions, options);
|
||||
const opts: Required<TradingViewOptions> = mergeWith(cloneDeep(initializeOptions), cloneDeep(options));
|
||||
const chart = ref<IChartApi | null>(null);
|
||||
const chartSeriesDefinition = getChartSeriesDefinition(opts.type);
|
||||
const chartEl = ref<HTMLElement | null>(null);
|
||||
|
||||
Reference in New Issue
Block a user