小编Dmi*_*nko的帖子

Next.js 路由器对某些页面上的浏览器后退按钮没有反应

我遇到了浏览器后退按钮打开时难以调查的错误https://gart.gallery

\n

https://gart.gallery/artworks/例如,如果您转到\n然后转到任何艺术品,https://gart.gallery/artworks/my-place/然后单击浏览器的向后\xe2\x80\x93\xe2\x80\x93,URL 将被替换,/artworks但不会呈现新页面。

\n

我的调试尝试:

\n
    \n
  1. const Artwork = () => <p>Artwork page</p>如果页面行为保持不变,则它与页面内容 \xe2\x80\x93 无关
  2. \n
  3. 它与页面文件结构无关
  4. \n
\n
   pages/arworks/index.tsx\n   pages/arworks/[slug]/index.tsx\n   // everything is usual\n
Run Code Online (Sandbox Code Playgroud)\n
    \n
  1. next.js 能够正常工作,因为/events/art-dubai/并可以/events正确地在浏览器中后退/前进
  2. \n
  3. /events/[slug]我尝试但徒劳地找到了正常工作和/arworks/[slug]页面之间的区别/artworks。此外,我尝试用最简单的组件替换它们,只需 a<p>Link\xe2\x80\x93 行为保持不变。
  4. \n
  5. 此错误实际上仅适用于arworks/[slug] => artworksgalleries/[slug] => galleriesartists/[slug] => artists不适用于/events/[slug] => /events。奇怪,我看不出有什么共同点或区别
  6. \n
  7. 我注意到,当我在有问题的页面上向后单击时,next.js 路由器不会触发该事件,而在导航每个其他页面时会触发该事件。我订阅了_app.tsx以下活动:
  8. \n …

javascript reactjs next.js

6
推荐指数
0
解决办法
1818
查看次数

C# JsonSerializer.Serialize 返回一个空对象

我遇到了有关将结构序列化为 JSON 的问题。所以,我有一个结构“坐标”

\n
namespace CoordinatesNameSpace\n{\n    public struct Coordinates\n    {\n        public Coordinates(string key, string x, string y, string z)\n        {\n            this.key = key;\n            this.x = x;\n            this.y = y;\n            this.z = z;\n        }\n        public string key;\n        public string x;\n        public string y;\n        public string z;\n        public override string ToString()\n        {\n            return $"{key} {this.x} {this.y} {this.z}";\n        }\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

所有属性都是公共的,所以我期望 json 序列化器将返回我 { "key": "v", "x": "0.12331212" ... },但它只返回一个空对象。

\n
using CoordinatesNameSpace;\n\nnamespace ObjToJSON\n{\n    class Program\n    {\n        static void Main(string[] args)\n        {\n …
Run Code Online (Sandbox Code Playgroud)

c# json jsonserializer system.text.json

5
推荐指数
1
解决办法
7141
查看次数

如何通过将参数传递给setState()来改变状态

我有十几个输入组件.当其中一些没有通过验证时,它会得到相应的属性"invalidInputName = true"和类"hasError".

当用户再次开始输入这些输入时,我需要通过将"invalidInputName"更改为false来删除"hasError".我想写函数clearValidation()将接受参数名称并将其更改为false.

class ExchangeForm extends React.Component {
    constructor(props) {
        super(props);
        this.state = {
            paymentAmountValidation: false,
            invalidAccountNum: false,
            invalidPhone: false,
            invalidCheck: false
        }
    }

    // this function toogles input to normal state.
    // I want to pass the name of property which i want to reset 
    // For example: clearValidation('invalidPhone') must work as
    // this.setState({ ...this.state, invalidPhone: false }).
    // But best i've done was { property: propery:false } :(
    // I have to change this.state only with setState() …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

1
推荐指数
1
解决办法
2316
查看次数