Чтобы передать примитивное значение из вложенного объекта в хук и сделать его реактивным, следует использовать `toRef` совместно с реактивным объектом. Однако, если `props.obj` не является реактивным, это может вызвать проблемы.
Вот несколько шагов, как это сделать:
1. **Убедитесь, что объект является реактивным**: Если `props.obj` не является реактивным, вам нужно создать реактивную версию этого объекта с использованием `reactive` или `ref`.
2. **Используйте `toRef` для доступа к вложенному свойству**: Когда вы уверены, что объект реактивен, можно использовать `toRef`, чтобы получить доступ к вложенному свойству.
Пример кода:
```javascript
import { defineComponent, reactive, toRef } from 'vue';
export default defineComponent({
props: {
obj: {
type: Object,
required: true,
},
},
setup(props) {
// Если props.obj не реактивен, создаем реактивную версию
const reactiveObj = reactive(props.obj);
// Используем toRef для получения реактивного свойства
const propRef = toRef(reactiveObj, 'prop');
// Теперь propRef можно использовать в вашем компоненте, и оно будет реактивным
return {
propRef,
};
},
});
```
Если `obj` из `props` уже является реактивным (например, создан с помощью `reactive`), то вы можете просто использовать `toRef` на этом объекте, как показано.
Если же ваш объект передается не как реактивный, вам нужно использовать `reactive` в `setup`, чтобы сделать его реактивным. Надеюсь, это поможет!