api:**里面存放了我们要调用的api接口的相关**。 比如说要求**存放电话目录与本目录等api问题。
**组件目录**sdk自带组件存放目录,解决系统问题的核心目录。
下面对组件进行分析,打开该目录,可以看到各种 UI 组件的 ts 文件,但在其中我们并没有发现文本输入的组件的 ts 文件。头绪了。
飘红又找不到该组件,那为什么会编译通过正常运行呢?
编译的时候首先会读取ets3.0.0.0uild-toolsets-loader.json 文件,在这里面通过对下面的组件的一个组件进行配置关联。会引用ets3.0.0.0uild-toolsets-loaderdeclarations目录下的相关组件目录的ts文件,该下也存在各种组件的ts文件,注意在编译的根本时候就不用了会引用之前的组件目录下的组件,编译跟组件存在目录没有关系。而我们会发现
ets3.0.0.0uild-toolsets-loaderdeclarations目录下textinput.d.ts文件及TextInput组件
。 component_component_也配置了TextInput组件,因此可以编译。
至于能够正常运行,那是因为config.json的文件中的配置文件下有组件的运行环境。
最后解决飘红的问题
首先要在这个目录下找到一个TextInput组件我们存在的textinput.d.ts文件复制到组件目录下。
注意:不要复制ets3.0.0.0uild-toolsets-loaderdeclarations的textinput。 d.ts文件,因为它和component目录下组件的还是有一些区别的。
好在目录下我们可以在OpenHarmony Sdk目录下的组件里面找到textinput.d.ts文件,直接复制这个文件就可以了。这个时候大家会告成,实则认为已经大功告成,此时我们会发现工作室中仍然有一个大功告成。
后来我要研究的重要目录,即成分发现了下的文件,又是目录下的index.d.ts文件,它相当不错于一个入口的各种清单文件,在里面配置了系统组件的支持。代码如下:
/*
* Copyright (c) 2021 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
export * from './alert_dialog';
export * from './alphabet_indexer';
export * from './animator';
export * from './badge';
export * from './blank';
export * from './button';
export * from './circle';
export * from './column';
export * from './column_split';
export * from './common';
export * from './custom_dialog_controller';
export * from './datapanel';
export * from './divider';
export * from './ellipse';
export * from './flex';
export * from './forEach';
export * from './gesture';
export * from './grid';
export * from './grid_container';
export * from './gridItem';
export * from './hyperlink';
export * from './image';
export * from './image_animator';
export * from './lazyForEach';
export * from './line';
export * from './list';
export * from './listItem';
export * from './navigator';
export * from './navigatorView';
export * from './pageTransition';
export * from './panel';
export * from './path';
export * from './polygon';
export * from './polyline';
export * from './progress';
export * from './qrcode';
export * from './rating';
export * from './rect';
export * from './row';
export * from './row_split';
export * from './scroll';
export * from './shape';
export * from './slider';
export * from './span';
export * from './stack';
export * from './stateManagement';
export * from './swiper';
export * from './tab_content';
export * from './tabs';
export * from './text';
export * from './video';
这时我们会在里面并没有配置textinput.d.ts文件进来。于是我在该文件中添加了下面的代码
export * from'./textinput';
然后就大功告成了,DevEco Studio不飘红了,并且可以通过Ctrl+点击跳转代码了。