在console.log()
reducer 操作中使用时,状态打印为 Proxy 对象,而不是我实际想要查看的对象。如何看到实物?我正在使用 redux-starter-kit createSlice,我不确定这是否与它有关。
import { createSlice } from "redux-starter-kit";
export interface IToDo {
id: number;
name: string;
complete: boolean;
}
const initialState: IToDo[] = [
{
id: 1,
name: 'Read a bit',
complete: true
}
];
const { actions, reducer } = createSlice({
slice: "todos",
initialState,
reducers: {
toggleTodo(state: IToDo[], action) {
const todo = state.find(todo => todo.id === action.payload);
console.log(todo);
if (todo) {
todo.complete = !todo.complete;
}
}
}
})
export const toDosReducer = …
Run Code Online (Sandbox Code Playgroud) 我收到错误:'ResizeObserver' only refers to a type, but is being used as a value here
尝试在 React 中使用 ResizeObserver 和 TypeScript 时。
我定义了以下接口,因为 TypeScript 不包含定义:
interface ResizeObserver {
observe(target: Element): void;
unobserve(target: Element): void;
disconnect(): void;
}
Run Code Online (Sandbox Code Playgroud)
我在以下组件中使用它:
const useWidth = () => {
const ref = useRef<HTMLObjectElement>(null);
const [width, setWidth] = useState(0);
useLayoutEffect(() => {
var resizeObserver = new ResizeObserver(() => console.log("blah blah blah"))
resizeObserver.observe(ref.current)
return () => resizeObserver.disconnect()
}, [ref.current])
return [ref, width];
}
Run Code Online (Sandbox Code Playgroud)