我有这样的项目结构
|--src
|--app.component
|--index.ts
|--home.component
|--index.ts
|--tsconfig.json
|--webpack.config.js
Run Code Online (Sandbox Code Playgroud)
我正在尝试在 app.component-index.ts 中执行以下操作
import { HomeComponent } from 'components/home.component'
Run Code Online (Sandbox Code Playgroud)
Typescript 找不到此模块并抛出
error TS2307: Cannot find module 'home.component'
Run Code Online (Sandbox Code Playgroud)
Typescript 文档接下来说:
对 moduleB 的非相对导入(例如源文件 /root/src/folder/A.ts 中的 import { b } from "moduleB")将导致尝试在以下位置查找“moduleB”:
/root/src/folder/moduleB.ts
/root/src/moduleB.ts
/root/moduleB.ts
/moduleB.ts
Run Code Online (Sandbox Code Playgroud)
所以对于我的情况我希望它会像
/src/components/app.component/components/home.component
/src/components/components/home.component
/src/components/home.component
Run Code Online (Sandbox Code Playgroud)
提前致谢。PS 在我的 webpack.config 中,我已将 root.resolve 设置为 src 并且所有内容都正确。Typescript-loader 将错误打印到终端,但一切都已捆绑并正常工作
有没有办法在派送后获得更新的状态?
想象一下,我正在尝试编写一些从上下文中获取状态的钩子(其中值是 useReducer 的结果)根据状态分派动作并返回更新的一个:
const useHook = (state, dispatch) => {
if (state.flag) {
dispatch({
type: `UNSET_FLAG`,
})
} else {
dispatch({
type: `SET_FLAG`,
})
}
}
const Foo = () => {
const [state, dispatch] = useContext(MyContext);
useHook(state, dispatch);
return state.flag ? <Flagged /> : <Unflagged /> ;
}
Run Code Online (Sandbox Code Playgroud)
提前感谢您的任何意见和想法
PS 出于描述目的,这个例子只是我脑子里的第一个愚蠢的事情。