1. 程式人生 > 實用技巧 >工作中遇到的問題

工作中遇到的問題

9.17:出現左右滑動(ios)

針對蘋果手機檢視頁面出現左右滑動的問題: 由於設定了padding,安卓等其他手機會自動忽略,但蘋果手機會顯示出來,所以造成左右滑動。另外,若設定了 position:relative 定位,並設定了left,right屬性也可能會導致蘋果手機頁面左右滑動。

解決辦法:
1,給設定了padding屬性的地方增加 box-sizing: border-box;

2,儘量避免在使用相對定位時設定過大的左右值

9.18: 上下滑動檢視不全(ios)

問題:當底部有button固定時,蘋果手機上下滑動檢視不全

解決辦法:在按鈕上方增加一個空白的標籤,設定它的寬高,將按鈕的高度設定出來。

demo:

<view class="remark">
   <view class="remark-title">備註</view>
   <textarea maxlength="200" placeholder="請填寫" placeholder-class="placeholder" value="{{plan.remark}}" @input="setRemark" />
   <view class="remark-count">{{plan.remark ? plan.remark.length : 0}}/200</view>
</view>
<view class="placeholder-view"></view>
<view class="fixed-button">
   <button @tap="save">儲存</button>
</view>
.placeholder-view {
        width: 100%;
        height: 140rpx;
    }

10.21:PUT/POST請求時,請求引數全部打散

解決辦法:在請求資訊中增加headers頭部,並將引數字串化

headers: 'application/json',
body: JSON.stringify(params),

Demo:

static saveMachineEnterEdit(id, params) {
        return request({
            url: `${apiHostMap.CP_HOST_WEB}/machine-entry-records/${id}`,
            method: 'PUT',
            headers: 'application/json',
            body: JSON.stringify(params),
        });
    }

10.21: Antd上傳圖片,獲取圖片時,因uid問題報錯

問題:fileList={infoImages}中的infoImages物件必須包含uid,否則會報錯。

解決方法:若後端同學返回的格式中不包含uid,則在獲取資料時手動增加上。

如:

images.forEach(img => {
	img.uid = img.url;
});
完整程式碼
// 上傳獲取圖片
<Upload
    {...uploadProps}
    listType="picture-card"
    fileList={infoImages}
    onChange={({ fileList }) => {
    	const { dispatch } = this.props;
        dispatch({
        type: 'machineDetail/overrideStateProps',
        payload: {
        	infoImages: fileList,
        },
     });
     }}
     onPreview={this.handlePreview}
 >
 {infoImages.length >= 5 ? null : uploadButton}
 </Upload>
// 獲取進場資訊
        *fetchMachineEnterInfo({ payload }, { call, put }) {
            const response = yield call(Machine.fetchMachineEnterInfo, payload);
            if (response.XCmdrCode === 0) {
                const { images, attachments, is_entry } = response.XCmdrResult;
                if (images.length > 0) {
                    images.forEach(img => {
                        img.uid = img.url;
                    });
                }
                yield put({
                    type: 'overrideStateProps',
                    payload: {
                        infoImages: images,
                        infoAttachments: attachments,
                        is_entry,
                    },
                });
            }
        },