在我的 src 文件夹中,我有我的全局 scss 文件所在的资产/样式文件夹。
在我中,index.scss我像这样导入它们
@import 'assets/styles/colors.scss';
@import 'assets/styles/links.scss';
@import 'assets/styles/basics.scss';
Run Code Online (Sandbox Code Playgroud)
然后在 index.js 中,我导入编译 index.css
问题:在basics.scss我使用变量 from 时colors.scss出现错误Undefined variable: \"$black\".
如果组件 scss 文件使用该文件中的变量,也会发生同样的情况。我真的不想在每个组件中都导入颜色。有没有办法让这 3 个文件全局化?
要使用 scss 做出反应,我正在使用此链接
我想使用Vuetify 的自动完成功能,但我在那里遇到了问题,因为在我的网站上,我有一个外部 divposition: relative的下拉部分,即autocompelete,它position: absolute不是将自己附加到 底部input而是随机位置。
自动完成有一个道具attach,Specifies which DOM element that this component should detach to. Use either a CSS selector string or an object reference to the element.所以我想我使用它并将其设置为我的输入类。
这有效,但它会在控制台中引起警告
[Vuetify] Unable to locate target v-autocomplete
found in
---> <VMenu>
<VAutocomplete>
<VCard>
<VApp>
<Root>
Run Code Online (Sandbox Code Playgroud)
这是我复制控制台警告的链接。
我正在向一个元素中添加一个类,并希望将其从同级中删除。在JQuery中它很简单,但是如何在普通JS中做到最好呢?这是我的代码示例。
<div class="controllers">
<span id='one' class='active'></span>
<span id='two'></span>
<span id='three'></span>
</div>
firstBtn.onclick = function() {
slides[0].className = 'slide active';
this.className = 'active';
};
Run Code Online (Sandbox Code Playgroud) 我想用express来向本地JSON文件发出GET请求.
在我的server.js中我有这个
var data = {};
app.get('/src/assets/data.json', (req, res) => {
console.log(res)
res.writeHead(200, {
'Content-type': 'application/json'
});
res.end(JSON.stringify(data));
});
Run Code Online (Sandbox Code Playgroud)
data.json看起来像这样
[{
"param": "one",
"param": "two",
"param": "three"
}]
Run Code Online (Sandbox Code Playgroud)
我还为GET请求创建了一个函数,只要加载DOM就会调用它
getData() {
let xhr = new XMLHttpRequest();
xhr.open('GET', '/src/assets/data.json', true);
xhr.onreadystatechange = () => {
if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {
console.log(xhr)
}
};
xhr.send();
}
Run Code Online (Sandbox Code Playgroud)
我收到了回复,但它是一个空的对象.我猜这是因为我的服务器文件var data = {};是空的但我不知道该怎么办呢?
我的应用程序中有许多发帖请求。其中一些必须具有和额外的头,token我不确定如何附加它
到目前为止,我的代码是这样的。我正在检查是否有令牌,何时将其附加到标头,然后使用vue-resource post方法发出请求。
let headers = new Headers({'Content-Type': 'application/json;charset=utf-8'});
if(token !== '') {
headers.append('TOKEN', token);
}
return this.http.post(uri, data, headers)
.then(this.extractData)
.catch(this.handleError);
Run Code Online (Sandbox Code Playgroud)
但这不附加 TOKEN
这是什么工作
this.http.interceptors.push(function(request) {
request.headers.set('TOKEN', token);
});
Run Code Online (Sandbox Code Playgroud)
在...的地方 headers.append('TOKEN', token);
但是由于某种原因,它TOKEN不是针对某些请求而是针对所有请求推送标头
因此,当我使用令牌发出请求时-它工作正常,之后我又发出了没有令牌的请求,但它仍然添加了令牌。
有谁知道解决此问题的最佳方法是什么?
UPD如果我console.log(headers.get('TOKEN'))在执行headers.append('TOKEN', token);此操作,则会为我提供正确的价值。因此,我猜测发布请求本身被错误的标题调用。
我有一个具有这种结构的对象。
const object = {
property1: null,
property2: {
array1: [],
array2: []
},
property3: {
prop1: null,
prop2: null
}
}
Run Code Online (Sandbox Code Playgroud)
我需要检查对象中的每个属性或每个属性中的每个值,如果它是假的 - null 或空数组,然后用它做一些事情。否则就留下它吧。
考虑到某些属性具有嵌套属性等,我不确定如何做到这一点。
非常感谢所有帮助。
我正在使用 Vuetify 自动完成组件,我希望它在其输入字段中显示默认值
我试图将值作为道具传递并将 v-model 字段更改为任何字符串,但它不起作用 - 除非我从列表中选择值,否则输入字段为空
<v-autocomplete
v-model="select"
:loading="loading"
:items="items"
:search-input.sync="search"
cache-items
class="mx-3"
flat
hide-no-data
hide-details
label="What state are you from?"
solo-inverted
></v-autocomplete>
new Vue({
el: '#app',
data () {
return {
loading: false,
items: [],
search: null,
select: 'Alabama',
states: [
'Alabama',
'Alaska',
'American Samoa',
'Arizona',
'Arkansas',
'California',
'Colorado',
]
}
},
watch: {
search (val) {
val && val !== this.select && this.querySelections(val)
}
},
methods: {
querySelections (v) {
this.loading = true
// …Run Code Online (Sandbox Code Playgroud) 我有一个自定义挂钩来获取表单提交上的数据
export const getIssues = ({ user, repo }) => {
const [issues, setIssues] = useState([]);
const handleInputChange = (e) => {
e.preventDefault();
axios.get(`https://api.github.com/repos/${user}/${repo}/issues`)
.then((response) => {
setIssues(response.data);
})
.catch((err) => console.log(err));
};
return {
issues,
onSubmit: handleInputChange,
};
};
Run Code Online (Sandbox Code Playgroud)
在我的组件中我这样称呼它
const response = getIssues({ user: user.value, repo: repo.value })
return (
<form className={css['search-form']} {...response}>...</form>
)
Run Code Online (Sandbox Code Playgroud)
问题是我想issues从另一个组件中的钩子中获取我的值。为此我想使用 Context。但我不知道该怎么做。
我可以调用此函数并将其传递给Provider,但我无法在没有参数的情况下调用它。所以我有点卡住了。
非常感谢所有的帮助。
我正在使用这样的钩子从我的路线中获得比赛
const match = useRouteMatch('/chat/:id');
Run Code Online (Sandbox Code Playgroud)
然后我想将它传递给子组件。但是当我传递它时,我收到了这个错误
Type 'match<{}> | null' is not assignable to type 'match<MatchParams>'.
Run Code Online (Sandbox Code Playgroud)
在 m 子组件中,我正在执行此操作
import { RouteComponentProps } from 'react-router';
interface MatchParams {
id: string;
}
interface ChildProps extends RouteComponentProps<MatchParams> {}
const Child = ({ match }: ChildProps ): React.ReactElement => {
return (
<>
<div>{match}</div>
</>
);
};
export default Child ;
Run Code Online (Sandbox Code Playgroud)
有人可以帮我弄清楚如何正确输入所有内容吗?
我想让 Jade mixin 输出这样的东西
<div class="progress__graph">
<div class="progress__bar two">
<p>Web Design 80%</p>
</div>
</div>
<div class="progress__graph">
<div class="progress__bar three">
<p>Web Design 80% </p>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
到目前为止,我有这个,但我不知道如何制作它,所以我也可以添加类(“二”、“三”等)
mixin progress(text)
.progress__graph
.progress__bar
p #{text}
Run Code Online (Sandbox Code Playgroud) reactjs ×3
vue.js ×3
javascript ×2
vuetify.js ×2
express ×1
html ×1
json ×1
node.js ×1
pug ×1
react-router ×1
typescript ×1
vue-resource ×1