我正在尝试为 redux 容器文件创建一个片段,该文件需要导入一些具有相同基本名称的反应文件。TM_FILENAME_BASE 非常适合从文件名中删除 .js,但在这种情况下,我的组件文件的扩展名是 fun-thing.component.js,并且容器将使用扩展名 fun-thing.container.js。
我用来在第一个时期之前选择所有内容的正则表达式是^([^.]+)
"Redux Container": {
"prefix": "rc",
"body": [
"// @flow",
"import { connect } from 'react-redux';",
"import { ${TM_FILENAME/^([^.]+)/${1:/pascalcase}/}Component } from './${TM_FILENAME/^([^.]+)/$1/}.component';",
"",
"const mapStateToProps = (state) => ({});",
"",
"const mapDispatchToProps = {};",
"",
"export const ${TM_FILENAME/^([^.]+)/${1:/pascalcase}/} = connect(",
" mapStateToProps,",
" mapDispatchToProps",
")(${TM_FILENAME/^([^.]+)/${1:/pascalcase}/}Component);"
],
"description": "Creates a normal container for a normal component"
}
预期的
// @flow
import { connect } from 'react-redux';
import { FunThingComponent } from './fun-thing.component';
...
实际的
// @flow
import { connect } from 'react-redux';
import { FunThing.container.jsComponent } from './FunThing.container.js.component';
...
如您所见,它没有省略文件扩展名。