首页 \ 问答 \ Oracle MySQL和MySQL一样吗?(Is Oracle MySQL the same as MySQL?)

Oracle MySQL和MySQL一样吗?(Is Oracle MySQL the same as MySQL?)

我在一个系统上有MySQL,我试图确定它是Oracle MySQL还是MySQL。 Oracle MySQL之间有区别吗:

http://www.oracle.com/us/products/mysql/index.html

和“常规”MySQL:

http://www.mysql.com/

或者它们是一样的吗?


I have MySQL on a system, and I am trying to determine if it is Oracle MySQL, or MySQL. Is there a difference between Oracle MySQL:

http://www.oracle.com/us/products/mysql/index.html

and "regular" MySQL:

http://www.mysql.com/

or are they the same thing?


原文:https://stackoverflow.com/questions/10391163
更新时间:2023-03-26 10:03

最满意答案

似乎HOC实际上存在一些误解。 HOC是接受组件的函数,然后返回组成该组件的新组件。 有关详细信息,请参阅本指南。

// HOCs are usually written with `with` at the beginning
function withBlogPostData(WrappedComponent) {
  return class BlogPostContainer extends React.Component {
    constructor() {
      super()
      this.state = { title: "", content: "" }
    }

    componentDidMount() {
      fetch(`/api/posts/${this.props.match.params.id}`)
        .then(res => {
          return res.json()
        })
        .then(blogPost => {
          // console.log('blogPost', blogPost)

          this.setState({
            title: blogPost.title,
            content: blogPost.content,
          })
        })
    }

    render() {
      return <WrappedComponent title={this.state.title} />
    }
  }
}

// Create a new component like so
// This way, BlogPost can access the prop `title` given to it by the HOC
const BlogPostWithData = withBlogPostData(BlogPost)

// Then use it in your routes:
<Route component={BlogPostWithData} />

另外,将渲染道具视为更灵活的替代方案。


It seems there's some misunderstanding in what an HOC actually is. An HOC is a function which accepts a component, then returns a new one composing that component. See this guide for more info.

// HOCs are usually written with `with` at the beginning
function withBlogPostData(WrappedComponent) {
  return class BlogPostContainer extends React.Component {
    constructor() {
      super()
      this.state = { title: "", content: "" }
    }

    componentDidMount() {
      fetch(`/api/posts/${this.props.match.params.id}`)
        .then(res => {
          return res.json()
        })
        .then(blogPost => {
          // console.log('blogPost', blogPost)

          this.setState({
            title: blogPost.title,
            content: blogPost.content,
          })
        })
    }

    render() {
      return <WrappedComponent title={this.state.title} />
    }
  }
}

// Create a new component like so
// This way, BlogPost can access the prop `title` given to it by the HOC
const BlogPostWithData = withBlogPostData(BlogPost)

// Then use it in your routes:
<Route component={BlogPostWithData} />

Also look into render props as a more flexible alternative.

相关问答

更多
  • 您只需要有一个导出history对象的模块。 然后你会在整个项目中导入该对象。 // history.js import { createBrowserHistory } from 'history' export default createBrowserHistory({ /* pass a configuration object here if needed */ }) 然后,您可以使用组件而不是使用其中一个内置路由器。 // index.js import { Router ...
  • 有很多方法可以解决这个挑战,但我同意onEnter中的调用应该是同步的建议。 以下是解决这一挑战的两种方法。 选项1:不验证页面加载上的令牌 可以说,浏览器根本不应该验证现有令牌。 也就是说,浏览器应该假定令牌有效并尝试按定义加载路由。 在来自服务器的API调用失败响应中(实际的身份验证和授权实际发生),您的应用程序可以处理重新验证它选择的任何方式的需要:重定向到登录页面,显示登录对话框等。 这种方法的优点是它可以在所有使用该逻辑的路由上工作,而无需单独指定需要它的路由。 选项2:使用HOC(推荐) 如您所 ...
  • 由于无法自定义浏览器对话框,因此您必须呈现单独的组件(例如,引导模式)并使用回调来确定单击了哪个按钮,以及要采取的操作。 我实际上遇到了你最近遇到的同样的问题,我能够通过使用routerWillLeave并使用来自另一个组件的回调来解决它。 表单组件 routerWillLeave = (route) => { if (!this.waitingForConfirm && this._hasUnsavedChanges() && !this.clickedSave) { this.refs.co ...
  • 您已经在组件中定义了默认导出,因此index.js中的以下行不正确: import {Calculator} from './Calculator'; import {CalcList} from './CalcList'; 改为: import Calculator from './Calculator'; import CalcList from './CalcList'; 或者,您可以创建一个导出这些组件的对象,如下所示: components.js: import Calculator from ...
  • 似乎HOC实际上存在一些误解。 HOC是接受组件的函数,然后返回组成该组件的新组件。 有关详细信息,请参阅本指南。 // HOCs are usually written with `with` at the beginning function withBlogPostData(WrappedComponent) { return class BlogPostContainer extends React.Component { constructor() { super() ...
  • 如果您在动作创建器中需要某些不处于redux状态的内容,则在分派动作时需要将其作为参数传递。 您不清楚道具上需要什么数据,但如果您只是想在动作创建者中进行重定向,则可以import { browserHistory } from 'react-router'并执行browserHistory.push(url) 。 If you need something inside your action creator that are not in the redux state, you'll need to ...
  • 您应该将Navigation组件呈现为您的App组件的一部分,而不是在您的index.js App应该看起来像 class App extends Component { render() { return (
    {this.props.children}
    ); } } 你的路线也需要改变一点。
  • createMemoryHistory确实是正确的方法 - 它模拟了内存中的浏览器历史记录。 您可以看看如何设置一些像这样的元素的React Router测试来查看它的实际运行情况: Link-test.js#L281-L312 。 我不确定你的意思是“尽快调用位置更新”。 这个想法是,你开始在一个特定的位置,然后根据需要从那里过渡。 createMemoryHistory is indeed the correct approach to take - it emulates a browse ...
  • 你可以尝试{React.cloneElement(this.props.children,{someExtraProp:something})} 所以你将额外的东西传递给你的观点 例如 function renderApp(data) { var React = require('react'); var ReactRouter = require('react-router'); var Router = ReactRouter.Router; var App = React.createClass( ...
  • 好的,所以,根据您的逻辑,未经授权的用户被禁止访问用户组件。 简单而公平。 没问题。 但我担心的是,您是否正在检查用户是否登录了未经身份验证的用户不应进入的组件。 我认为这是不正确的,因为: 这是我们计划的额外旅程 - 增加了额外的不必要的低效率。 有可能从路由器我们转到用户组件,后者将我们发送回前者。 乒乓。 用户组件看起来很脏。 有不相关的逻辑。 是无关紧要的。 因为不应在用户组件中进行身份验证检查。 用户组件应包含用户相关的东西。 您认为如果不是进入用户组件来检查用户身份验证,我们会在路由器中检查这一 ...

相关文章

更多

最新问答

更多
  • 您如何使用git diff文件,并将其应用于同一存储库的副本的本地分支?(How do you take a git diff file, and apply it to a local branch that is a copy of the same repository?)
  • 将长浮点值剪切为2个小数点并复制到字符数组(Cut Long Float Value to 2 decimal points and copy to Character Array)
  • OctoberCMS侧边栏不呈现(OctoberCMS Sidebar not rendering)
  • 页面加载后对象是否有资格进行垃圾回收?(Are objects eligible for garbage collection after the page loads?)
  • codeigniter中的语言不能按预期工作(language in codeigniter doesn' t work as expected)
  • 在计算机拍照在哪里进入
  • 使用cin.get()从c ++中的输入流中丢弃不需要的字符(Using cin.get() to discard unwanted characters from the input stream in c++)
  • No for循环将在for循环中运行。(No for loop will run inside for loop. Testing for primes)
  • 单页应用程序:页面重新加载(Single Page Application: page reload)
  • 在循环中选择具有相似模式的列名称(Selecting Column Name With Similar Pattern in a Loop)
  • System.StackOverflow错误(System.StackOverflow error)
  • KnockoutJS未在嵌套模板上应用beforeRemove和afterAdd(KnockoutJS not applying beforeRemove and afterAdd on nested templates)
  • 散列包括方法和/或嵌套属性(Hash include methods and/or nested attributes)
  • android - 如何避免使用Samsung RFS文件系统延迟/冻结?(android - how to avoid lag/freezes with Samsung RFS filesystem?)
  • TensorFlow:基于索引列表创建新张量(TensorFlow: Create a new tensor based on list of indices)
  • 企业安全培训的各项内容
  • 错误:RPC失败;(error: RPC failed; curl transfer closed with outstanding read data remaining)
  • C#类名中允许哪些字符?(What characters are allowed in C# class name?)
  • NumPy:将int64值存储在np.array中并使用dtype float64并将其转换回整数是否安全?(NumPy: Is it safe to store an int64 value in an np.array with dtype float64 and later convert it back to integer?)
  • 注销后如何隐藏导航portlet?(How to hide navigation portlet after logout?)
  • 将多个行和可变行移动到列(moving multiple and variable rows to columns)
  • 提交表单时忽略基础href,而不使用Javascript(ignore base href when submitting form, without using Javascript)
  • 对setOnInfoWindowClickListener的意图(Intent on setOnInfoWindowClickListener)
  • Angular $资源不会改变方法(Angular $resource doesn't change method)
  • 在Angular 5中不是一个函数(is not a function in Angular 5)
  • 如何配置Composite C1以将.m和桌面作为同一站点提供服务(How to configure Composite C1 to serve .m and desktop as the same site)
  • 不适用:悬停在悬停时:在元素之前[复制](Don't apply :hover when hovering on :before element [duplicate])
  • 常见的python rpc和cli接口(Common python rpc and cli interface)
  • Mysql DB单个字段匹配多个其他字段(Mysql DB single field matching to multiple other fields)
  • 产品页面上的Magento Up出售对齐问题(Magento Up sell alignment issue on the products page)