amis/docs/zh-CN/start/faq.md
2021-03-15 10:30:39 +08:00

79 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: 常见问题
---
## 如何水平垂直居中
1.1.5 版本之后可以使用 flex 布局,默认就是水平垂直居中。
## CRUD 顶部有重叠遮挡
在初始化 amis 渲染器的时候设置 `affixOffsetTop`,或者通过 `"affixHeader": false` 关闭固定顶部功能。
## 如何换行
有时候返回结果中有 `\n`,在页面展现的时候默认不会有换行效果,解决办法有 3 个:
1. 使用 tpl、html、plain 或 static 组件,加上 `"wrapperComponent": "pre"` 配置项
2. 引入 `helper.css`,给组件加上 `"classname": "white-space-pre"` 配置项(预计从 1.1.5 开始内置这个类,从而不需要引入 `helper.css`
3. 包在 `container` 容器中,使用 `style` 控制样式
前两种方法比较简单,这里就只演示第三种,如果熟悉 css 可以很灵活实现各种展现控制:
```schema
{
"type": "page",
"data": {
"log": "line 1\nline 2"
},
"body": {
"type": "container",
"style": {
"white-space": "pre"
},
"body": {
"type": "tpl",
"tpl": "${log}"
}
}
}
```
## 如何折行
折行需要给对应的组件加上 `"classname": "word-break"`
## 如何实现左侧导航栏页面跳转?
在 1.1.1 之后的版本提供了新的 app 组件,可以基于它实现导航功能,请参考 `https://github.com/aisuda/amis-admin` 项目。
另外 amis 团队还开发了「[爱速搭](http://suda.baidu.com/)」,即便完全不懂前端也能基于它开发应用。
## 集成到 React 项目中报错
一般都是因为 React、Mobx、mobx-react 版本有关,参考 amis 项目的 [package.json](https://github.com/baidu/amis/blob/master/package.json),将版本保持一致,尤其是 Mobx目前 amis 中使用的版本是 4因为兼容性的考虑短期内不会升级到 5/6使用 MobX 5/6 肯定会报错。
## 有的功能在官网示例中能用,但在 React/SDK 中无法使用
如果提示找不到渲染器,那肯定是版本较老,尝试以下两种方法解决:
1. 使用最新 beta 版本,方法是去 [npm](https://www.npmjs.com/package/amis?activeTab=versions) 查看最新版本号,比如最新版本是 1.1.2-beta.2
,就运行运行 `npm i amis@1.1.2-beta.2` 命令,在 `node_modules/amis/sdk` 目录中也能找到对应的 sdk 代码。
2. 如果还是报错,可以使用最新代码自动编译的 sdk下载地址是 `https://github.com/baidu/amis/blob/gh-pages/sdk.tar.gz`
## 如何实现点击 xxx 后执行 yyy 代码?
因为几乎所有组件都会默认将属性传入 React 组件中,因此其实都支持 React 中的各种事件,比如 `onClick`
```
{
type: 'button',
label: '按钮',
onClick: () => {
alert('hi');
}
}
```
这是其他 UI 框架中的做法,但在 amis 中并不推荐这样做amis 的侧重点是低代码,应该使用内置的 [action](../concepts/action) 来实现,如果内置这些不能满足需求,可以想想这个问题是否能抽象成一种新的 action 配置,这样就能完全通过配置来实现了,后续遇到类似功能就不需要写代码了,这才是更符合 amis 低代码理念的方式。