Meituan-Dianping/mpvue · error
v-bind without argument expects an Object or Array value
Error message
v-bind without argument expects an Object or Array value
What it means
Raised by bindObjectProps, the render helper for v-bind="value" object syntax. The expression is truthy but isObject(value) fails — it is a primitive like a string, number or boolean rather than an Object or Array. The helper expects a map of attribute/prop names to values (an Array is also accepted and merged with toObject); any other truthy value is rejected and its bindings are dropped.
Source
Thrown at src/core/instance/render-helpers/bind-object-props.js:24
warn,
isObject,
toObject,
isReservedAttribute
} from 'core/util/index'
/**
* Runtime helper for merging v-bind="object" into a VNode's data.
*/
export function bindObjectProps (
data: any,
tag: string,
value: any,
asProp: boolean,
isSync?: boolean
): VNodeData {
if (value) {
if (!isObject(value)) {
process.env.NODE_ENV !== 'production' && warn(
'v-bind without argument expects an Object or Array value',
this
)
} else {
if (Array.isArray(value)) {
value = toObject(value)
}
let hash
for (const key in value) {
if (
key === 'class' ||
key === 'style' ||
isReservedAttribute(key)
) {
hash = data
} else {
const type = data.attrs && data.attrs.type
hash = asProp || config.mustUseProp(tag, type, key)View on GitHub (pinned to 6c5d78ee04)
Solutions
- Pass an object of attributes: v-bind="{ id: itemId, href: url }"
- Verify the bound expression evaluates to an object (or array of objects) at render time — check defaults like '' or 0 on the source variable
- Use single-argument v-bind:attr="value" for binding one attribute
Defensive patterns
Strategy: type-guard
When it happens
Trigger: Thrown at src/core/instance/render-helpers/bind-object-props.js:24 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of Meituan-Dianping/mpvue@6c5d78ee04 (2026-09-02).
Data as JSON: /api/errors/673df920f5251f75.
Report an issue: GitHub.