diff --git a/packages/area/index.js b/packages/area/index.js
index 0829b466a..60966827c 100644
--- a/packages/area/index.js
+++ b/packages/area/index.js
@@ -54,6 +54,12 @@ export default sfc({
       handler() {
         this.setValues();
       }
+    },
+
+    columnsNum() {
+      this.$nextTick(() => {
+        this.setValues();
+      });
     }
   },
 
diff --git a/packages/area/test/__snapshots__/index.spec.js.snap b/packages/area/test/__snapshots__/index.spec.js.snap
index 1ebee1c5b..6d1d8ffdc 100644
--- a/packages/area/test/__snapshots__/index.spec.js.snap
+++ b/packages/area/test/__snapshots__/index.spec.js.snap
@@ -93,6 +93,32 @@ exports[`change option 3`] = `
 </div>
 `;
 
+exports[`columns-num prop 1`] = `
+<div class="van-picker van-area">
+  <div class="van-hairline--top-bottom van-picker__toolbar">
+    <div role="button" tabindex="0" class="van-picker__cancel">取消</div>
+    <div role="button" tabindex="0" class="van-picker__confirm">确认</div>
+  </div>
+  <!---->
+  <div class="van-picker__columns" style="height: 220px;">
+    <div class="van-picker-column">
+      <ul class="van-picker-column__wrapper" style="transform: translate3d(0, 88px, 0); transition-duration: 0ms; transition-property: none; line-height: 44px;">
+        <li class="van-ellipsis van-picker-column__item" style="height: 44px;">北京市</li>
+        <li class="van-ellipsis van-picker-column__item" style="height: 44px;">天津市</li>
+      </ul>
+    </div>
+    <div class="van-picker-column">
+      <ul class="van-picker-column__wrapper" style="transform: translate3d(0, 88px, 0); transition-duration: 0ms; transition-property: none; line-height: 44px;">
+        <li class="van-ellipsis van-picker-column__item" style="height: 44px;">北京市</li>
+        <li class="van-ellipsis van-picker-column__item" style="height: 44px;">县</li>
+      </ul>
+    </div>
+    <div class="van-picker__mask" style="background-size: 100% 88px;"></div>
+    <div class="van-hairline--top-bottom van-picker__frame" style="height: 44px;"></div>
+  </div>
+</div>
+`;
+
 exports[`reset method 1`] = `
 <div class="van-picker van-area">
   <div class="van-hairline--top-bottom van-picker__toolbar">
diff --git a/packages/area/test/index.spec.js b/packages/area/test/index.spec.js
index 052f4b8d8..2a30e43e6 100644
--- a/packages/area/test/index.spec.js
+++ b/packages/area/test/index.spec.js
@@ -101,3 +101,19 @@ test('reset method', async () => {
   wrapper.vm.reset();
   expect(wrapper).toMatchSnapshot();
 });
+
+test('columns-num prop', async () => {
+  const wrapper = mount(Area, {
+    propsData: {
+      areaList,
+      columnsNum: 3
+    }
+  });
+
+  wrapper.setProps({
+    columnsNum: 2
+  });
+
+  await later();
+  expect(wrapper).toMatchSnapshot();
+});