表情符号很棒,所以我在想如何使用link标签将其添加为收藏夹图标。
一种可能的解决方案:
我发现这个博客帖子一种可能的方式在这里。基于此,到目前为止,通过以下解决方案已经实现了我想要的。
JavaScript 代码片段:
const setFavicon = (emoji) => {
const canvas = document.createElement('canvas');
canvas.height = 32;
canvas.width = 32;
const ctx = canvas.getContext('2d');
ctx.font = '28px serif';
ctx.fillText(emoji, -2, 24);
const favicon = document.querySelector('link[rel=icon]');
if (favicon) { favicon.href = canvas.toDataURL(); }
}
setFavicon('');
Run Code Online (Sandbox Code Playgroud)
中的link标签HTML:
<link rel="icon" type="image/png" href="favicon.ico"/>
Run Code Online (Sandbox Code Playgroud)
所以我的问题:
也许favicon.ico为此目的创建文件也可以做到这一点。有没有更好的方法来实现这一点,而无需JavaScript在代码中转换或添加额外的代码片段?谢谢!
我有一个带有布尔状态的简单功能组件。和按钮来改变状态。
它最初设置为true所以当我按下 true 按钮时,它不会呈现。
但是如果我按下假按钮,它会重新渲染,如果我再次按下假按钮,它会重新渲染,即使状态已经设置为false..
有人可以解释为什么当状态更改为完全相同的状态时组件会重新渲染吗?如何防止它重新渲染?
import React, {useState} from 'react';
const TestHooks = () => {
const [state, setState] = useState(true);
console.log("rendering..", state);
return(
<div>
<h1>{state.toString()}</h1>
<button onClick={() => setState(true)}>true</button>
<button onClick={() => setState(false)}>false</button>
</div>
)
}
export default TestHooks;
Run Code Online (Sandbox Code Playgroud) 我有一些动态 JSON 字符串,如下所示:
Status is unknown\nThe combination is excluded by the following restriction\nRestriction number 2. 01 Mar 12 08:03:01 0--Exclusion--OrderDeliveryTimeframe.equals(\"oneMonth\") && OrderShipping.equals(\"air\")\n\n
Run Code Online (Sandbox Code Playgroud)
因此,当我打印与输出相同的内容时,\n不会在新行中渲染文本。所以我写了下面的代码:
return <div>
{item.intro.replace(/[\n \n\n]/g, "\n")}
<br/>
Run Code Online (Sandbox Code Playgroud)
现在的问题是 - 它在遇到第一次出现 后渲染下一行中的文本\n,但之后不再渲染。它也不适用于\n\n. 我想我错过了一些东西。有人可以帮我解决这个问题吗?提前致谢。
在React项目中使用Emotion,我正在设计一个特定元素的样式,如下所示:divpadding-bottom
export const StyledItem = styled('div')(() => ({
'&:nth-child(1) > div:nth-child(1)': {
paddingBottom: '1px'
}
}))
Run Code Online (Sandbox Code Playgroud)
并在Chrome的控制台中收到以下错误消息:
进行服务器端渲染时,伪类
":nth-child"可能不安全。尝试将其更改为":nth-of-type".
请参阅控制台的屏幕截图:
以下更改解决了该问题并从控制台中删除了错误消息:
export const StyledItem = styled('div')(() => ({
'&:nth-of-type(1) > div:nth-of-type(1)': {
paddingBottom: '1px'
}
}))
Run Code Online (Sandbox Code Playgroud)
查看package.json的依赖关系:
"dependencies": {
"@emotion/core": "^10.0.28",
"@emotion/styled": "^10.0.27",
"react": "^16.13.1",
"@storybook/react": "^5.3.13",
/* other dependencies */
}
Run Code Online (Sandbox Code Playgroud)
问题:
因此,建议对错误消息进行更改解决了该问题。还检查了这个问题和这个 GitHub 问题已经没有给我一个明确的解释。
问题是,如果事情发生在客户端而不是服务器端,为什么会显示该错误消息?谢谢你!
在我们的React应用程序存储库中处理Webpack 5和Storybook集成。主要是从Webpack v4升级到v5,因为它的支持已经在这篇博文中正式宣布。按照建议的完整说明进行操作。
通过下面提到的设置,我在控制台上收到以下错误消息:
<i> [webpack-dev-middleware] wait until bundle finished
10% building 0/1 entries 0/0 dependencies 0/0 modules? ?wdm?: wait until bundle finished:
/opt/app/node_modules/webpack/lib/DefinePlugin.js:549
const oldVersion = compilation.valueCacheVersions.get(name);
^
TypeError: Cannot read property 'get' of undefined
at /opt/app/node_modules/webpack/lib/DefinePlugin.js:549:57
Run Code Online (Sandbox Code Playgroud)
基本上错误来自第/node_modules/webpack/lib/DefinePlugin.js一次运行时的标记行npm run storybook。
见package.json相关devDependencies:
<i> [webpack-dev-middleware] wait until bundle finished
10% building 0/1 entries 0/0 dependencies 0/0 modules? ?wdm?: …Run Code Online (Sandbox Code Playgroud) 我正在使用material-ui来创建表单,并使用Grid系统执行以下操作:
<Grid container>
<Grid item xs={4} />
<Grid item xs={4} />
<Grid item xs={4} />
</Grid>
Run Code Online (Sandbox Code Playgroud)
并且能够将前两个项目放在第一行,将第三项目放在第二行,我发现这样做的唯一方法是:
<Grid container>
<Grid item xs={4} />
<Grid item xs={4} />
</Grid>
<Grid container>
<Grid item xs={4} />
</Grid>
Run Code Online (Sandbox Code Playgroud)
将材料UI 堆叠Grid到行中的更好方法是什么(例如Bootstrap网格中的行类概念)?
我还考虑了以下选项:
用空Grid项目填充第一行?
把垂直容器?
是否有任何方法可以在Phaser-3框架中暂停正在运行的游戏并恢复(使用按钮)?为Phaser-2提供的那个不起作用。
我正在使用React Context api将某些状态传递给不同的子组件,并且它正在返回undefined。
父组件:
export const UserContext = React.createContext();
export class Provider extends Component {
state = {
editGroup: false,
}
render() {
return (
<UserContext.Provider value={{
state: this.state
}}>
{this.props.children}
</UserContext.Provider>
)
}
}
Run Code Online (Sandbox Code Playgroud)
子组件:
import { UserContext } from './index';
return (
<React.Fragment>
<UserContext.Consumer>
{(context) => (
<p>im inside the consumer {console.log(context)}</p>
)}
</UserContext.Consumer>
</React.Fragment>
);
Run Code Online (Sandbox Code Playgroud)
最后console.log的返回是undefined,我在这里做错了什么?
我想让 GitHub 图标<GitHubIcon />可点击并使其重定向到外部 url,在 api 中查看它似乎没有链接属性 ... https://material-ui.com/api/svg-icon/
<div className={classes.root}>
<AppBar position="static">
<Toolbar>
<Typography variant="h6" className={classes.title}>
Made with <FavoriteIcon /> by
<a href="https://github.com/quiko"><GitHubIcon /></a> //Not working
</Typography>
</Toolbar>
</AppBar>
</div>
Run Code Online (Sandbox Code Playgroud)
一般是怎么做的??
我收到以下错误:
Material UI React - 找不到模块:无法在 React 中解析“@material-ui/pickers”。
我有关于“@date-io/date-fns”的相同消息,但设法通过更新到最新版本来解决它: npm i --save date-fns@next @date-io/date-fns
我怀疑它可能需要类似的解决方案。
代码取自 Material-UI 网站上的示例。
谢谢!丹尼尔
[import 'date-fns';
import React from 'react';
import Grid from '@material-ui/core/Grid';
import DateFnsUtils from '@date-io/date-fns';
import { MuiPickersUtilsProvider, KeyboardTimePicker, KeyboardDatePicker } from '@material-ui/pickers';
function MaterialUITest() {
// The first commit of Material-UI
const \[selectedDate, setSelectedDate\] = React.useState(new Date('2014-08-18T21:11:54'));
const handleDateChange = (date) => {
setSelectedDate(date);
};
return (
<MuiPickersUtilsProvider utils={DateFnsUtils}>
<Grid container justify="space-around">
<KeyboardDatePicker
disableToolbar
variant="inline"
format="MM/dd/yyyy"
margin="normal"
id="date-picker-inline"
label="Date picker inline" …Run Code Online (Sandbox Code Playgroud) reactjs ×8
javascript ×5
material-ui ×3
storybook ×2
css ×1
emoji ×1
emotion ×1
favicon ×1
html ×1
npm ×1
react-hooks ×1
webpack ×1